東京紙器株式会社 /

FileMakerからLINE WORKSへの通知方法② FileMakerの設定

今回はDXに関する記事です。

以前「FileMakerからLINE WORKSへの通知方法①」と題して、備忘録的な記事を執筆したのですが、直接事業には関係ないしどうせ誰も読まないだろうと思い、②以降の執筆を保留していました。

すると先日、記事の続きをどうやるのかと問い合わせをいただきました。こんな記事を読んでくださる方もいるんだなあと思い、何気なくアクセスログを確認してみたところ、意外に記事へのアクセスが多いことが分かりました。その上、関連ワードでGoogle検索するとまさかのトップ表示で、これには驚きました。

このまま終わらせるのは少し不親切だなと思い、今回は続きとなる第②弾の記事を執筆してみました。なお、最終的には第③弾で終わりになる予定ですが、続きがいつになるかは私にも分かりません⋯。

FileMakerでやること


前回まででLINE WORKS側での下準備は完了です。次はFileMakerでの設定を行う必要がありますが、その前に改めて全体像を確認しましょう。

  1. FileMakerから文字情報を送信する。
    ↓ cURLを使ってJSON形式で送信
  2. Make(旧integromat)を介してLINE WORKSへ転送する。
    ↓ APIで連携して送信
  3. LINE WORKSのBotを使ってグループチャットにPOSTする。

FileMakerから任意の文章を送信するために、FileMakerの「URLから挿入」というスクリプトを使います。このスクリプトにあるcURLカールの指定オプションを使用することで、指定の情報を外部へ送信できます。

グローバルフィールドの準備


まずは、グローバルフィールドを1つ準備します。このフィールドは「URLから挿入」の「ターゲット」として使います。すると、スクリプト実行後、このフィールドにサーバーからのレスポンスが返るようになります。ついでに、通知したい内容を入れる「内容」フィールドも作成しておきます。

スクリプトの作成


次に、文章を送るためのスクリプトを作成します。以下の2ステップで実行できるようなものにします。

  1. 変数を設定
    1. JSON形式で送りたい文章を設定
  2. URLから挿入
    1. URLから挿入の「ダイアログあり」はオフ
    2. 1で設定した変数を含めた情報を「cURLのオプションを指定」を使って送信

変数を設定


それでは、変数を設定しましょう。変数の名前は仮で「$data」とし、値は「JSONSetElement」関数を使って指定します。ここでJSONオブジェクト名(キー)を指定するのですが、通知したいグループチャットのチャンネルIDと内容をキーに指定します。

式は以下通りです。

Let (
  json = JSONSetElement (
    "{}" ;
    "channelid" ;
    "チャンネルIDを入力" ;
    JSONString
  ) ;
  JSONSetElement (
    json ;
    "text" ;
    "下記が内容だ!\nこれはテストですよー" ;
    JSONString
  )
)

“channelid”と”text”がそれぞれJSONキーで、続くのがキーの値(「希望のチャンネルID」や「下記が内容だ!\n & cURL::内容」の部分)、そして、”JSONString”というのは値の種類で、値が文字列であることを表します。”text”の値にある「\n」は改行を意味します。仮に内容フィールドが「テスト」とすると、スクリプトから返る”text”は下記になります。

“下記が内容だ!”
“テスト”

URLから挿入


次に実行される「URLから挿入」スクリプトの設定を行います。準備したグローバルフィールドをターゲットフィールドに指定します。

「URLを指定」にはMake(旧integromat)で生成するURLを指定しますが、今は空欄のままで大丈夫です。続いて「cURLオプションの指定」に以下を追加します。

"--request POST -S" &
" --header \"content-type: application/json \"" &
" --data @$data"

よくあるエラーの原因


$dataに入る値は任意に変更できますが、その時に注意が必要なのが改行です。例えばフィールドの情報に改行がある場合、FileMakerで改行を表す「¶」を、必ず「\n」へ変換しなければいけません。この変換が不完全だと、Makeでデータの内容を正常に認識できなくなり、思うような結果がでなくなります。

また、「cURLオプション」の構文が間違っているときもエラーの原因になります。cURLオプションに記述するcurlコマンドによって、送られるデータの形式などを指定しているのですが、これが間違っていると、LINE WORKSでデータを正常に認識してくれなくなります。

FileMakerでcurlコマンドを指定する場合、システム上の都合もあり、独特な記述をしなければいけないので要注意です。詳しいことは、私も参考にしたサイト「【FileMaker】curl ググって解決しづらかったこと」で、詳しく解説してくれているので、気になる方はぜひご一読ください。

第3弾では、Make(旧integromat)の設定と通知の実行までを解説します。

次回の記事もお楽しみに⋯。

参考サイト


JSONの記述方法やスクリプトの組み方など、下記の記事やChatGPTを参考にしています。実践的な内容ですので、読みながら自身でも試してみると良いでしょう。

「JSON」とは?非エンジニアでもよくわかる解説

https://cloudapi.kddi-web.com/magazine/json-javascript-object-notation

【FileMaker】curl ググって解決しづらかったこと

https://qiita.com/tyuma/items/7f0c161509f3c5c78257

cURL と REST API を使用し、FileMaker アプリ内で配送状況を追跡

https://blog.tpc.jp/2017/06/tracking-shipping-in-filemaker-using-curl-and-restapi.html

cURL 基本を学ぶ入門編「LINE Notify で FileMaker 16 から Push 通知を送る」

https://kotovuki.co.jp/archives/3098

お問い合わせ