FileMakerで外部サービスのデータを使いたいと思っても、「APIって難しそう」「プラグインが必要?」と感じてしまう方は多いと思います。ですが、実は標準機能の「URL から挿入(Insert from URL)」を使えば、比較的かんたんにAPIからデータを取得できます。ここでは、専門的な言葉はできるだけ避けながら、「URL から挿入」を使ったAPI取得の入門ステップを紹介します。
FileMakerでAPIを使うと何ができる?
まず、「APIで何がうれしいの?」という点を整理しておきましょう。APIを使うと、例えば次のようなことができます。
- 住所から緯度・経度を取得して地図と連携する
- 外部の在庫管理システムやECサイトとデータを同期する
- 為替や天気などの最新情報をFileMakerの画面に表示する
つまり、FileMakerだけでは持てない「外の世界のデータ」を、ボタン1つで取り込んで利用できるようになる、というイメージです。その入口となるのが「URL から挿入」スクリプトステップです。
「URLから挿入」とは?簡単にイメージしよう
「URL から挿入」は、指定したURLにアクセスして、その結果をフィールドや変数に取り込むためのスクリプトステップです。普段ブラウザでWebサイトを見るのと同じように、FileMakerからURLにアクセスし、その返事(レスポンス)を丸ごと受け取る、という動きをします。
APIの場合、この「返事」が多くはJSON形式というデータのかたまりで返ってきます。見た目は少しややこしいですが、「名前と値のセットがたくさん並んでいるテキスト」と考えればイメージしやすいはずです。
最低限おさえておきたい事前準備
実際に試す前に、次の点を確認しておきましょう。
- インターネット接続があること:APIサーバーにアクセスするために必須です。
- APIの仕様(ドキュメント):どのURLに、どんな形でアクセスすればよいかが書かれています。
- APIキーやトークンが必要かどうか:有料・会員制サービスでは、多くの場合必要になります。
まずはAPIキーが不要な、かんたんな無料APIから始めるのがおすすめです。練習用の天気APIやサンプルのJSONデータを返すAPIなどがインターネット上に公開されています。
基本の流れ:URLから挿入でAPIを呼び出す
ここでは、JSONを返すシンプルなAPIを想定して、流れだけを押さえましょう。
- レスポンスを格納するためのテキストフィールド、または変数を用意する
- スクリプトで「URL から挿入」ステップを追加する
- URLにAPIのエンドポイント(アクセス先)を指定する
- 必要に応じてHTTPメソッド(GET/POSTなど)やヘッダー、本文を「cURL オプション」で設定する
- 取得したJSONを解析して、欲しい項目だけフィールドに書き込む
最初は「JSONをそのまま表示するだけ」でも十分練習になります。どんなデータが返ってくるかを目で確認できるからです。
「URLから挿入」の設定ポイント
スクリプトワークスペースで「URL から挿入」ステップを選ぶと、いくつかの設定項目があります。その中でも、特に意識しておきたいポイントをかんたんに説明します。
- ターゲット
取得した結果をどこに入れるかを指定します。
・グローバル変数($$apiResultなど)をターゲットに指定しておくと、後続の処理で扱いやすくなります。
・検証用には一時的なテキストフィールドをターゲットにして画面に表示すると、中身を確認できます。 - URL
APIドキュメントに記載されているエンドポイントを指定します。
例:https://api.example.com/v1/sample?param=abc - cURLオプション
ここが少しとっつきにくい部分ですが、「どういう方法でアクセスするか」をまとめて指定する場所です。たとえば、- GETかPOSTかなどのメソッド指定(例:
--request GETや--request POST) - 認証情報(APIキーやトークン)をヘッダーに付ける指定(例:
--header "Authorization: Bearer 〇〇") - 送信するデータ(JSONなど)を本文に含める指定(例:
--data @${JSONデータ})
を書きます。はじめはAPIのサンプルコードを真似して、必要な部分だけ書き換えるようにすると理解しやすくなります。
- GETかPOSTかなどのメソッド指定(例:
取得したJSONをFileMakerで扱うコツ
APIのレスポンスは、多くの場合JSONという形式で返ってきます。このままだとただの長いテキストなので、「JSONGetElement」などの関数を使って、欲しい部分を抜き出していきます。
例えば、次のようなJSONが返ってきたとします。
{
"name": "山田太郎",
"email": "taro@example.com"
}
このとき、$$apiResultにこのJSONが入っているとしたら、
JSONGetElement ( $$apiResult ; "name" )→ 「山田太郎」JSONGetElement ( $$apiResult ; "email" )→ 「taro@example.com」
という形で必要な値を取り出せます。あとは通常のスクリプトと同じように、フィールドにセットしたり、レコードを作成したりしていくだけです。
つまずきやすいポイントと対処の考え方
「URL から挿入」でAPIを扱うときに、よくあるつまずきポイントをいくつか挙げておきます。
- 想定どおりのデータが返ってこない
→ まず、URLをブラウザで直接開いてみて、正常にデータが返るかを確認します。FileMaker固有の問題なのか、API側の問題なのかを切り分けることが大事です。 - エラーコードやエラーメッセージが返ってくる
→ APIドキュメントを見て、そのエラーコードの意味を確認します。多くの場合、「認証情報が間違っている」「必要なパラメータが足りない」など、原因が書かれています。 - JSONの構造が複雑で、欲しい値をどう取り出せばいいか分からない
→ 取得したJSONを一度整形(フォーマット)してくれるオンラインツールを使って、階層構造を目で確認すると理解しやすくなります。
まずは小さなAPI連携から始めてみよう
「URL から挿入」を使ったAPI取得は、一見ハードルが高そうに思えますが、実際には「URLにアクセスしてテキストをもらってくる」だけです。あとは、そのテキスト(JSON)を少しずつ分解して、欲しい情報を取り出していけばOKです。
いきなり大規模なシステム連携に挑戦するのではなく、まずはサンプルAPIで「1件のデータを取得して、1つのフィールドに表示する」という小さなゴールから始めてみてください。一度流れがつかめれば、さまざまな外部サービスとの連携に応用できるようになります。
FileMakerの中だけで完結していた業務を、インターネット上のさまざまなサービスとつなげることで、仕組みの幅や自動化の可能性は大きく広がります。ぜひ、「URL から挿入」を入口に、API連携の世界に一歩踏み出してみてください。