以前、ZapierというWebサービスを使って、FileMaker Admin APIとTwilioを統合する方法を紹介しましたが、ZapierのWebhookというツールを使ってFileMakerで管理するデータと他のアプリを連携させることも可能です。
FileMaker Data API (RESTful API)を使うことが今後は増えると思いますが、今回は下位互換性も考慮してXML Web公開のAPIを使う方法を紹介します。
FileMaker & Zapier
(元記事はこちら)
Rolf
2018/11/14
Zapierは、1000種類以上のアプリを接続することでタスクを自動化し時間を節約することができるツールです。元々FileMakerを使うこと自体が時間を節約することになるので、ZapierとFileMakerを接続すれば、その効果は絶大です。Eメール、ツイート、YouTubeチャンネル、RSS、WooCommerce、その他のどんなアプリでも、Zapを作ってFileMakerデータベースとの連携をZapierにまかせましょう。手順はシンプルで、作るのが楽しくなります。
ZapとはZapierで作成する連携アプリで、無料でいくつか作成することができます。ZapierにはWebhookと呼ばれる標準機能があり、自分専用のZapを作成しwebを介して他のアプリと連携させることができます。incoming webhookと「URLから挿入」スクリプトステップを使用してFileMakerからZapにデータを送信するか、outgoing webhookを使用してZapからFileMakerにデータを送信することができます。
今回の記事では、ZapにGmailアカウントを監視させます。Eメールが届くと、Zapは件名をフィルタリングし、該当するデータをFileMakerデータベースに送信します。データベースはFileMaker Server 17で公開されていますが、実際にはZapierはバージョン6以降のすべてのFileMaker Serverで機能します。
Zapier Webhookは、 FileMakerカスタムWeb公開とXMLを使用してPOSTリクエストを行い、メールの件名、本文、および日付をテーブルに挿入します。カスタムWeb公開とXMLは、以前のバージョンではインストール時にデフォルトで有効になりますが、FileMaker Server 17では手動で「有効」にする必要があります。
以下の手順はFileMaker Server 17のみを対象としています。以前のバージョンでは、カスタムWeb公開がインストールされていてオフになっていないことを確認してください。
バージョン17では、ターミナルウィンドウを開いて「fmsadmin」コマンドを使用します。まず、以下のコマンドでXMLが有効になっているかどうかを確認します。
fmsadmin get cwpconfig
Webブラウザで管理コンソールにログインするときと同じように、ユーザ名とパスワードを使用してログインします。”EnableXML = false”と表示された場合は、有効にする必要があります。次のコマンドを入力してください。
fmsadmin set cwpconfig enablexml=true
もう一度ユーザ名とパスワードを入力すると、”EnableXML = true”というメッセージが表示されます。
次にWebブラウザでFileMaker Server 17 Admin Consoleにアクセスします。「コネクタ 」タブでWeb公開が有効になっていることを確認します。
FileMakerのバージョンにかかわらず、少なくとも1つのテーブル、Zapierから入力するフィールドを含む1つのレイアウト、 “fmxml”拡張アクセス権が割り当てられたアクセス権セット、およびfmxmlを使用するユーザアカウントを持ったデータベースをサーバで公開します。
これで設定完了です。
次は、Zapを作成しFileMakerデータベースに新規レコードを挿入するよう設定します。
Zapierを初めて使用する場合は、Zapを作成できるようwww.zapier.comでアカウントを作成します。使用するサービス、今回はGmailアカウント、に接続できるよう、ZapierがあなたのEメールを定期的に読むことを許可します。
Zapは1ステップごとに設定を行いますが、一つのZapはいくつかのステップを含むことができます。今回のZapはわずか2ステップです。最初のステップでZapierに私のEメールを読ませます。フィルタに一致するすべての電子メールはステップ2に進みます。今回は、電子メールの件名で “mvfiler”という文字列を確認します。
注: 「MVFiler」は私達が長年使用しているファイル管理システムで、ファイルがこのサービスを使用してダウンロードされるたびに電子メールが送信されます。Zapierはその電子メールを読み、FileMakerのテーブルに新規レコードを作成します。これはクライアントがファイルをダウンロードしたことを示しています。結果として、クライアントのすべてのファイルの履歴が作成されます。これは、私たちの仕事にとって貴重な情報になります。
Zapierで、最初のステップは次のようになります。
次のステップで、ZapierのWebhookを使用してデータをPOSTします。URLフィールドにFileMaker Server 17のURLを入力します。
https://filemakerserver/fmi/xml/fmresultset.xml
XMLを使用するので、サーバーアドレスの後に”fmi/xml/fmresultset.xml”を追加します (“filemakerserver”の部分には実際のサーバアドレスが入ります)。Zapierは、さまざまなフォーマットでデータを送信できます。XMLの場合、Payload typeとして「Form」を選択します。すべてのデータは、クエリ文字列内のキー/値ペアとして送信されます。
Dataにキーを入力します。 “ -db”にはデータベース名、“ -lay”にはレイアウト名、そして入力したいフィールド名を設定します。私の例では、 “datum”(日付)、 “subject”、”message”です。キー名は大文字と小文字が区別されます。
ステップ1の結果を示す右側のメニューの各フィールドの値を選択します。新規レコードを作成するために、”-new”というキーも必要です。このキーでは、FileMaker XML文法に例外を作り、それを機能させるために値として「1(または任意の文字)」を入力します。値を入力しないと、ZapierがFileMakerにキーを送信せず、新規レコードを作成できません。
最後はベーシック認証です。データベースで定義したfmxml拡張アクセス権を持つユーザアカウントのユーザ名とパスワードを”|”で区切って入力します。アカウント “user”、パスワード “pwd123″(いい例ではありませんが)なので、”user|pwd123”と入力します。
Zapをテストする準備ができました。すべてうまくいっていれば、テストを実行するとデータベーステーブルに新規レコードが作成されます。
最後のステップとして、ZapierのダッシュボードでZapを有効にします。
Happy Zapping!