概要
MODE の SmartModule を使って IFTTT の Maker チャネルに Webhook を送信してみました
Maker でリクエストボティを使えるように変換してあげるのがポイントでした
環境
- MODE 2016/08/01 時点
- IFTTT 2016/08/01 時点
IFTTT で Maker レシピの作成
IFTTT で Maker チャネルを使ったレシピを作成します
今回は Maker チャネルでリクエストを受信したら (IF) Gmail にメールを送信してみます (Then)
「Event Name」は適当に設定して OK ですが、URL に使うのでそれっぽいのにしましょう
Gmail 側の設定は適当に設定しください
レシピが作成できたら Webhook 用の URL を取得します
これが取得できれば IFTTT での設定は OK です
mode2maker-proxy のデプロイ
このプロキシは MODE の SmartModule から送信された Json のボディ情報を Maker で使える形式に変更してくれます
今回は Heroku 上にデプロイします
Heroku ボタンがあるのでそれでデプロイしてください
あとは環境変数の設定をします
- git clone https://github.com/kakakikikeke/mode2maker-proxy.git
- cd mode2maker-proxy
- heroku login
- heroku git:remote –app your-m2m-proxy
- heroku config:set VALUE1=eventType VALUE2=eventData VALUE3=light MAKER_URL=https://maker.ifttt.com/trigger/your_maker_event/with/key/your_maker_key –app your-m2m-proxy
という感じで設定することで以下のように Json の変換をした上で、Maker にリクエストしてくれます
- MODE からリクエストボディ
{
"eventType":"abc",
"eventData":{"light":"on"},
"homeId":3,
"timestamp":"2015-06-07T08:37:37.997281148Z",
"originDeviceId":3
}
- Maker にリクエストしてくれる Json のリクエストボディ
{
"value1" : "abc",
"value2" : {"light":"on"},
"value3" : "on"
}
各 VALUE1, 3 の値は変換する Json のキー名を指定します
今回 VALUE3 に light を指定しています
light は Json のキー内には存在しません
その場合は eventData の中の Json を検索してキーがあればそのキーの値を設定してくれます
どこのキー名にも当てはまらない場合は null が設定されます
そして MAKER_URL の環境変数には IFTTT で作成した Maker チャネルの Webhook 用の URL を設定してください
MODE で SmartModule の作成
ここでのポイントはリクエストする URL を Heroku にデプロイしたプロキシアプリの URL を指定することです
自分は Heroku 上に kaka-mode2maker-proxy という名前でデプロイしているので、そのアプリの URL を SmartModule に指定しています
Key は GEENRATE ボタンを押せば勝手に生成してくれます
これだけ気をつけて SmartModule は作成してください
動作確認
- IFTTT の Maker を使ったレシピの作成
- mode2maker-proxy のデプロイ
- SmartModule の作成
が終わった準備 OK です
デバイスなりから MODE にイベントを送信してみましょう
するとプロキシが動作して Maker がコールされ Gmail が来ると思います
Gmail のメール本文の設定がデフォルトのままであれば以下のような内容で届くはずです
最後に
MODE + IFTTT の連携をしてみました
IFTTT が便利すぎるので通知系をやりたい場合はとりあえず IFTTT 経由しておけば安心だと思います