スクリプト:URLから挿入 でカスタムヘッダーの指定ができるようになったので、ChatWorkへメッセージを送信してみる。
フィールドを作成
テーブル:Post_cURL
フィールド:
URL
room_id
messages
Result
message_id
テーブル:settings
フィールド:api_token
テーブル:Post_cURL と テーブル:settings はデカルト積リレーションでつなぐ。
■スクリプト作成
URL から挿入 [選択; ダイアログあり:オフ; $json;
/*URLを指定*/
Substitute ( Post_cURL::URL ; "{room_id}" ; Post_cURL::room_id )
;
cURL オプション:
Let([
¢option="
--request POST
--header X-ChatWorkToken:{api_token}
--data-binary body={messages}"
];
Substitute ( ¢option ;
["{api_token}" ; settings::api_token]
; ["{messages}" ; GetAsURLEncoded ( Post_cURL::messages ) ]
)
)
;URL を自動的にエンコードしない]
POSTするだけなら、スクリプト:URL から挿入 だけでOK!
POSTに成功した場合、変数:$json に {"message_id":"2001*******"} が返ってきます。
cURLオプションの --data-binary body={messages} は、--Form だと改行が無くなります。
--data body={messages} これでもイケるみたいです。
■戻り値の解析:
JSON関連の関数が追加されたので、解析がカンタンです。
関数:JSONGetElement ( $json ; "message_id" ) とするだけ。
FileMaker 16 の スクリプト:URLから挿入 は、まんま、cURL(https://curl.haxx.se/)が組み込まれている様子。
なので、上記で設定した cURL オプションが、curl.exe でそのまま使えます。
FileMaker 15 以前のバージョンの場合は、
$URL=
$cURL_option=
としておいて
Event を送信 [「aevt」; 「odoc」;
"C:\curl\curl.exe " & $URL & " " & $cURL_option ]
としておけば、16への移行時に楽なのと、バージョンが混在していてもスクリプトの切り替えが楽です。
ただ、このままだと、戻り値の取得ができません。
戻り値の取得方法は、以下が参考になります。
難しい、、、
返信削除