IFTTTのWebhookで使えるContentTypeの違いとは

はじめに

IFTTT、便利ですよね。

自分も(GoogleHome関係で)よく使ってます。

この記事はIFTTTのWebhookでPOST送信しようとした時に、3タイプあって何が違うんだ~って思った時に調べたことのまとめです。

ご参考までに。

そもそもWebhookとは

すごい簡単に説明すると、
「ある動作(トリガ)に対してPOSTリクエストを送信する仕組み」
という感じです。

有名なのはGitHubが提供してるWebhookですね。
リポジトリにpushしたときとかにPOSTリクエストを送信できるようです。

ちなみに僕がIFTTTで使ってるのは、
GoogleHomeで何か発言をしたら、発言した内容をPOSTリクエストする
というものです。

IFTTTには送信タイプ(ContentType)が3つあって、

  • application/json
  • application/x-www-form-urlencoded
  • text/plain

の3タイプがあります。

これらの3タイプの違いってなんだということをまとめました。

IFTTTで使えるContentType

application/json

POSTするデータとしてJSON形式を使うフォーマットです。

IFTTTだとBody欄に{"key":"val","key2":"val2"}と書くとjsonデータをPOSTリクエストで送ることができます。

curlだとこんな感じですかね。

$ curl -X POST -H ‘Content-Type:application/json’ -d ‘{“key”:”val”,”key2″:”val2″}’ https://hoge.piyo

application/x-www-form-urlencoded

こちらはURLにクエリパラメータをくっつけてPOSTリクエストを送信するフォーマットです。
クエリパラメータとはよくAmazonとか見たときにURLが長くなっているアレです。

https://www.amazon.co.jp/s/ref=nb_sb_noss?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&url=search-alias%3Daps&field-keywords=%E3%81%82%E3%82%8C%E3%81%8C%E3%81%AA%E3%81%8C%E3%81%A6%E3%81%A1&rh=i%3Aaps%2Ck%3A%E3%81%82%E3%82%8C%E3%81%8C%E3%81%AA%E3%81%8C%E3%81%A6%E3%81%A1

もともとのURLに?をつけてkey=valの形で続けていきます。
(例:https://hoge.piyo?key=val)

複数あるときは&で区切っていきます。
(例:https://hoge.piyo?key=val&key2=val2)

IFTTTではBody欄に?以降をそのまま書くことでPOSTリクエストを送信できます。
(例:key=val)

text/plain

文字通りplainなtextである(?)テキストファイルをPOST送信できるフォーマットです。

IFTTTではBody欄に書いたものがそのままテキストファイルとして送信されます。

これ以上書くことがない

おわり

以上IFTTTで使えるContentTypeのまとめでした。

 

Webhook使いこなせるようになりてえな…