FileMaker から S3 や EC2 などの AWS の API を利用する方法

こんにちは。株式会社フルーデンスの小巻です。

タイトルの通り、FileMaker から S3 や EC2 などの AWS の API を利用する方法についての解説記事です。

今までは、FileMaker で画像や動画などのファイルを使う場合、Dropbox を使って実装するケースが多くありました。
しかし、昨今では、AWS EC2 で FileMaker Server を利用するケースや、BIツールとして Amazon QuickSight と連携したり、Amazon API Gateway や AWS Lambda、Amazon SES を利用するケースも増えてきました。

そのため、オブジェクトフィールドの代替手段として、Dropbox に加えて S3 で実装するケースが増えてきました。

S3 は容量を気にすることなく始めることができますし、Cyberduck や Mountain Duck などを使うことで、いろいろなケースで使えるメリットもあります。

S3 に限らず、FileMaker から AWS の API を利用できるようになれば、EC2・Lambda・QuickSight など、いろいろな用途で利用できる幅が増えると思います。

また、昨今では、開発者の中でも Claris Connect や Zapier、Make(旧Integromat)などの GUI でアプリ連携をするサービスを使う人も増えてきました。

大変便利ですが、連携されていないアプリの API は利用できないということになります。

メインのサービスが連携されているので、ほとんどのケースをカバーできるので良いのかもしれませんが、個人的にはドキュメントを読み、手を動かし実装する方法についても多くの人に挑戦して頂ければと思います。

対象者

  • AWS の API の署名の作成方法を理解したい方
  • 様々な AWS の API を、SDKやライブラリを使わずに実行したい方

初めに

最近では、Google や Microsoft、Dropbox などの API を利用する際は、OAuth 2.0 を理解していれば、ほとんどの API が利用できる状況です。

しかし、AWS の API は、リクエスト情報をもとに署名を作成し、ヘッダーに作成した署名を設定する必要があります。

そのため、OAuth 2.0 とは少し違う方法で API を実行する必要があります。

今回は、FileMaker から S3 の API を利用する想定で、署名の作成方法や実際にリクエストする方法までの工程を解説します。

公式ドキュメント

詳細については、以下のドキュメントを見ていただければと思います。

今回はの記事では、以下のドキュメントに書いている以上のことは記載していません。
そのため、以下のドキュメントを理解されている方は、記事を読む必要はありません。

AWS API リクエストの署名

how-to-use-aws-apis-s3-ec2-from-filemaker-37

署名バージョン 4 の署名プロセス

how-to-use-aws-apis-s3-ec2-from-filemaker-38

署名バージョン 4 を使用した AWS リクエストへの署名

how-to-use-aws-apis-s3-ec2-from-filemaker-39

環境

私の環境は以下の通りです。

  • macOS Monterey (v12.6.1)
  • FileMaker Pro 19.6.1.45

curl コマンドの具体例とデモ動画

ドキュメントの通りに進めていき、最終的に署名が作成できましたら、以下のような curl コマンドをリクエストします。

今回の記事を通して、オプションの `–header “Authorization: XXXXX” ` という値を作成する方法を理解して頂ければと思います。

curl コマンド

S3の “demo-eib5t-filemaker” バケットにある “animal_chara_radio_azarashi.png” というpngファイルを取得する際のコマンドになります。

URL
https://demo-eib5t-filemaker.s3.us-east-1.amazonaws.com/animal_chara_radio_azarashi.png

curlオプション
--request GET
--header "Authorization: AWS4-HMAC-SHA256 Credential=yourAaccessKeyId/20221130/us-east-1/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=d36d49c86a509378e7b75ebd0730d86e9a8dcec4b8508543bb6bf0af98b7fe66"
--header "x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
--header "x-amz-date: 20221130T044954Z"
--show-error
--dump-header $dumpHeader
--FM-return-container-variable
--output "animal_chara_radio_azarashi.png"

デモ動画

サンプルファイルを使いデモ動画を準備しました。

続きを読む →

2件のコメント

API GatewayとAWS Lambda(Node.js)を使い効率よくWebサービスと連携する その1

こんにちは。

株式会社フルーデンスの小巻です。

2020年03月04日に、Claris Connectがリリースされました。

Claris Connect は単純な自動化を超える飛躍をもたらします
https://www.claris.com/ja/blog/2020/developers-soar-beyond-simple-automation-with-claris-connect

大変素晴らしいサービスだと思います。

さて、今回はタイトルの通り、Claris Connectではなく、AWSの2つのサービスを活用して、効率よくWebサービスと連携する方法を書きます。

具体的には、Amazon API GatewayとAWS Lambdaがどのようなものか、を簡単に説明するための記事です。

FileMakerではなく、Node.jsを使いますので、ご了承ください。

このようなイメージになります。

filemaker-aws-apigateway-lambda-24

記事の対象者

今回の記事に興味あるFileMaker開発者は、ほとんどいないだろうな、と思っております。

FileMakerしかできない方には、Node.jsの話のため参考になりませんし、
FileMaker以外の言語を書ける人には、既に使ったことがある方が多いと思いますので、特に参考になる情報ではないためです。

今回の記事の対象者は、以下のような方だと思います。

  • FileMakerの『URLから挿入』を使って、Webサービスと連携している方。
  • 他の言語を使えば『もっと簡単に書けるのではないか?』と思っている方。
  • 多言語を勉強しようと思っている方。
  • S3やSES、DynamoDBなどのAWSのサービスと連携したい方。

上記に当てはまらない方は、タブを閉じて頂ければと思います。

続きを読む →

Chatwork APIとFileMakerの連携(「URLから挿入」の使い方)

こんにちんは。

株式会社フルーデンスの小巻です。

今回はタイトルの通り、ChatworkとFileMakerの連携をする過程で、「URLから挿入」の使い方を少しでも理解して頂ければと思います。

Chatworkは、GoogleやMicrosoftなどと違い、非常にかんたんにAPIを使うことができますので、初めてAPIに取り組む方には良いサービスだと思います。

ChatworkとFileMakerを連携したい方や、「URLから挿入」ステップを勉強したい方に参考になれば幸いです。

サンプルファイルをダウンロードする

サンプルファイルをGitHubに公開しましたので、cloneするか、ダウンロードをしてください。

リポジトリ

https://github.com/frudens/filemaker-chatwork

ダウンロード

https://github.com/frudens/filemaker-chatwork/archive/master.zip

Chatworkにログインし、APIトークンを取得する

Chatworkにログインし、画面右上の「API設定」をクリックします。

chatwork-api-filemaker-integration-1

パスワードを入力すれば、APIトークンが取得できます。

chatwork-api-filemaker-integration-2

ドキュメントを確認する

先程のAPIトークン取得画面にある、「ドキュメントはこちら」をクリックします。

chatwork-api-filemaker-integration-3

まず、初めてに一番基本となる自分自身の情報を取得するAPIをリクエストしてみましょう。

サイドバーから「エンドポイント」をクリックし「/me」をクリックします。

http://developer.chatwork.com/ja/endpoint_me.html

chatwork-api-filemaker-integration-4

ターミナルから「自分自身の情報を取得する」APIをリクエストする

※curlコマンドを説明するために、あえてFileMakerではなく、ターミナルを使っています。

ドキュメントのサンプルコードは、以下のようになっています。

サンプルコード

curl -X GET -H "X-ChatWorkToken: 自分のAPIトークン"
"https://api.chatwork.com/v2/me"

curlコマンドは、ターミナルやPowerShellなどで利用するコマンドラインツールです。
ですので、こちらのサンプルコードを実行する場合は、macOSであれば「ターミナル」を開いて、コードをコピペすれば実行できます。

以下の画像のように、ドキュメントのレスポンス部分にあるJSONと同じ結果を取得することができました。

chatwork-api-filemaker-integration-5

続きを読む →

コンサルティング レポート(Google スプレッドシートとFileMakerの連携)

株式会社フルーデンスの小巻です。

FileMaker カンファレンスに登壇させて頂いたり、Webセミナーをやっていることもあり、技術支援のご依頼を頂く事が少しづつ増えてきました。

今年より、コンサルティングをさせて頂いたお客様に、アンケートのご協力をお願いすることにしました。

ご記入頂いた内容を匿名で公開することにご了承頂きましたので、簡易的な記事にさせていただきました。

ご了承頂きまして、誠にありがとうございました。

お客様からご相談頂いた内容

お客様からは、以下のような内容をご相談頂きました。

  • 任意のGoogle スプレッドシートを、FileMakerのレコードで更新したい。
  • fmOAuth(弊社がGiHubに公開しているソリューション)を参考にし、Google スプレッドシートの新規作成はできたが、更新するときの「URLから挿入」のcURLコマンドやスクリプトをどのように記述すればよいか分からない。
  • JSONを作成するときに、効率の良い作成方法はあれば教えてほしい。
  • トークンを取得しても、3600秒(1時間)で、期限が切れてしまう。

続きを読む →

fmOAuth(0.0.2)の機能を使ってFileMakerとGoogleカレンダーの連携や、Gmailをダウンロードしてみた

こんにちは。
株式会社フルーデンスの小巻です。

先日、2つの簡単な記録を書きました。

fmOAuth(0.0.2)に、GmailのAPI(ダウンロードと送信)を実装しています

fmOAuth(0.0.2)に、OAuth認証(Google)に任意のアプリを利用できる機能を実装しています

伝わらないと思い、あたらめて動きを動画にしてみました。
動画をみていただけると、どんなことができるかわかるかと思います。

今回は、サンプルファイルを大きく修正していますので、リリース後にダウンロードしていただければと思います。

引き続き、開発していきます!

このあとは、Webビューアを使って、カレンダーを実装したいと思います。