2019年7月16日火曜日

(IFTTT)Webhooks - Beebotte 連携でエラー

今回は IFTTT を利用して
  1. トリガー:Mail(Send IFTTT any email)
  2. アクション:Webhooks(Make a web request)
    Webhooks の通知先は、Beebotte
というアプレットを作って、発生した障害を調査した記録です。

Webhooks の設定は以下
URLhttps://api.beebotte.com/v1/data/publish/[Channel]/[Resource]?token=[Channel Token]
MethodPOST
Content Typeapplication/json
Body{"data":"{{Subject}}"}
URL の根拠がリファレンスから探せなかったが、cURL の json 送信を参考にした。
https://beebotte.com/docs/publish


問題はメールの件名(Subject)でなく、メールの本文(Body)を使うと発生する。
(例)上記のBodyを変更する {"data":"{{Body}}"}

トリガーとなるメールを送信すると、このアプレットの View activity log で、エラーが確認できる。メールで送った本文(Body)の内容も併せて確認できるが、特に問題は見当たらない。

<View activity log の表示>
Applet skipped
Unable to make web request. Your server returned a 400




検証として、cURL を使ってメールの本文を json 送信してみる。

(1)Beebotte の Console 画面を開く
「Secret Key」と「Subscribe」の項目を埋めて、「Subscribe」ボタンをクリック
黒い Messages 枠に結果の表示あり。(これで json の受信を待機している状態)

(2)Beebotte の Console 画面で、以下のパターンを実施した結果を確認する。

[パターン1] メールの件名(Subject)を使う設定の状態で、IFTTTのトリガーとなるメールを送信

[パターン2] メールの本文(Body)を使う設定の状態で、IFTTTのトリガーとなるメールを送信
 → エラーの場合は、Console 画面に表示されず。

[パターン3] メールの本文の内容を、cURL を使って json 送信
curl -i -H "Content-Type: application/json" \
-X POST -d '{"data":"テストメッセージ"}' \
https://api.beebotte.com/v1/data/publish/[Channel]/[Resource]?token=[Channel Token]


直接状況を確認できないが、これだと問題見当たらず。Webhooks でメールの本文(Body)を使うと、何か余計な改行などで json の様式エラーとなってしまうのではないかと推測します。
(cURL のメッセージ文を途中で改行すると、「HTTP/1.1 400 Bad Request」になった。)