FileMaker から Airtable のレコードを作成する
ずっと前から気になっていた Airtable をやっと使ってみた。
Airtable | Create apps that perfectly fit your team's needs
https://www.airtable.com/
無料版を少し触ってみたが、iPadOS からデータベースの作成・編集ができたりといった FileMaker ではできないことができる。使い方によってはいろいろ便利だ。FileMaker から完全に乗り換えることはできなさそうだが、FileMaker を補うツールとして使っていきたい。
Airtable で最初に混乱したのが、Workspace と Base の違いだ。これについては、「Workspace がフォルダで、Base がその中に入れるファイル」と考えることでやっと理解できた。Workspace はグループ分けをしているだけで、Base が個々のデータベースである。
複雑なスクリプトなどを使用せず、単純にデータを蓄積していくだけなら FileMaker Server を使うまでもなく、Airtable で事足りそうだ。
そこで、最初にやってみたことが、FileMaker から Airtable のレコードを作成することだ。これができれば、Mac の FileMaker や iPad の FileMaker Go からデータを入力して、どんどん Airtable にデータを溜めたりできる。
今回は(レコードのデータを拾ったりせず)FileMaker のスクリプト内のみで、Airtable のレコードを新規作成してみた。
環境:macOS Catalina Version 10.15.6(英語環境)、FileMaker Pro 19
(0)Airtable のアカウントを作成する。今回は無料版で作成した。
(1)FileMaker から Airtable にデータを送るには、Airtable の Base ID および API key を確認する必要がある。
Base ID は2つの方法で確認できる。
(方法1)適当な Base を開きその URL を見てみると以下のようになっているので、ここで Base ID が分かる。
https://airtable.com/[Base ID]/[Table ID]/[View ID]
(方法2)適当な Base を開いた状態で、「右上の HELP>ADDITIONAL RESOURCES>API documentation」で API documentation を開き、「The ID of this base is〜」の部分に書かれている。
Base ID は、名前からして各 Base 固有の値なのかと思いきや、アカウントごとに決められた値のようだ。
次に API key だが、これは「右上のユーザーアイコン>Account>API>Generate API key」で発行する。
(2)FileMaker で以下のようなスクリプトを作成する(Airtable で、Table 1 というテーブルに、FieldA、Field FieldB、FieldC というテキストフィールドがあるとする)。
Set Variable [$url ; Value: "https://api.airtable.com/v0/[Base ID]/Table%201"]
Set Variable [$fA ; Value: "フィールドAです。"]
Set Variable [$fB ; Value: "フィールドBです。"]
Set Variable [$fC ; Value: "フィールドCです。"]
Set Variable [$JSON ; Value: *1 ]
Insert from URL [Select ; With dialog: Off ; Target: $$Results : $url ; cURL options: *2 ]
*1 の値
JSONSetElement ( $JSON ;
["records[0].fields.FieldA"; $fA ; JSONString];
["records[0].fields.FieldB"; $fB ; JSONString];
["records[0].fields.FieldC" ; $fC ; JSONString]
)
*2 の値
"curl -X POST -H "Authorization: Bearer [API key]" -H "Content-Type: application/json" -d " & $JSON
これでスクリプトを実行すると、Airtable にレコードが作成され、スクリプトで指定した内容が反映される。投稿内容は日本語も大丈夫だった。
注意点としては、投稿内容に半角スペースがあってはいけないことと(全角スペースは OK)、Airtable のフィールドタイプは Number だとエラーとなるので Single line text などのテキストにしなければいけないこと、だ。
参考:
【Airtableの使い方】ノーコードでデータベース管理をしよう | ノーコードジャパンニュース-ノーコード開発の羅針盤
https://nocodejapan.org/media/how-to-use-airtable/#WorkspacetoBase
Understanding Airtable IDs – Airtable Support
https://support.airtable.com/hc/en-us/articles/4405741487383-Understanding-Airtable-IDs
Integrating FileMaker and Airtable
https://blog.supportgroup.com/integrating-filemaker-and-airtable
JSON関数の階層化 – ファイルメーカーの使い方はもちろん開発やサポートも安心!FileMakerのことなら株式会社東洋へ
https://fm.toyo-group.co.jp/tips/2020/11/11/949