IFTTT Makerを試してみる~IFTTTからのWeb Request編~


つkShizuoka Dev CafeでIFTTT(イフト)の話が出てきて調べてみたらなんか面白そうという話になった。
IFTTT自体は結構前からあるのですが、なんとなく触ってこなかった。
とりえず、IFTTT Makerが面白そうなのでスイッチサイエンスのIFTTTにMaker Channelができましたみてやってみようと思ったら、変わってるみたいなので自力でw

おそらくMaker Webhooksを使えるようにすればよさそう。
なんか、すでにアクティブ状態だった。
これ書く前に何かしたっけ?

まぁ、こんな感じになっていればよさそう。

で、実際にIFTTTと自分のプログラムを連動させる方法です。
割とわかりづらかった。
まず、MyAppletsの画面に行きます。
そして、右のほうにあるNew Appletをクリックします。

下のような画面になるので、中央の「Want to add another action or filter? Build on the platform」をクリックします。


このように入力するような画面になるので、設定をしていきましょう。

Trigger
なにが起きた時にiftttを動作させるかを設定します。
Search Serviceにtwitterと入力すると以下のような選択肢が表示されます。
ここでは「New Liked tweet by you」を選びます。

Add Action
Triggerで指定した事象が発生したときに何をするかの設定です。
Search Serviceに「Webhooks」と入れましょう。
その後、下のコンボボックスから「Make a web request」を選びます。
これは名前の通り、Webのリクエストを生成します。
これを選ぶと、自分のWeb上のプログラムを呼び出すことができます。
Field LabelにはURLやMethodと書かれていますが、設定する項目の名称が表示されています。
各Field Labelのところにいろいろと設定を行います

URLはあなたのWeb上のプログラムのURL、たとえは、http://xxxx/xxxxx/aaaa.phpなどを設定します。
MethodはGETやPOST
ContentTypeはリクエストとして送る内容のCOntentTypeを
Bodyはこのリクエストが何を送るのかを設定います。

Add ingredientボタンを押すと、そのアクションで使える変数的なものを選択することができます。

ここまで出来たら、アプレットのタイトルや説明を設定してSaveボタンを押します。
何か問題があれば指摘されますし、問題がなければ次の画面に進みます。
で、以下のような画面が出ればあと少し。
この画面で「Enable it on IFTTT」をクリックします。


この画面が出てくるので
「Turn On」
をクリックします。
これで、Twitterでお気に入りをすると設定したURLが呼び出されます。
ちなみに、この画面の「Edit on the Platform」をクリックすると、アプレットを編集できます。

ちなみに、PHPで今回サーバー側のプログラムを作りました。
超手抜きw

	error_log(date("Y/m/d H:i:s.u") . ":GET :" . var_export($_GET, true) . "\r\n", 3, "./test.log");
	error_log(date("Y/m/d H:i:s.u") . ":POST:" . var_export($_POST, true) . "\r\n", 3, "./test.log");
	$data = json_decode(file_get_contents('php://input')); 
	error_log(date("Y/m/d H:i:s.u") . ":BODY:" . var_export($data, true) . "\r\n", 3, "./test.log");

ちなみに、お気に入りをおしてURLが呼び出されるまで少しラグがあります。
体感で1,2分ってところかな?多分1分間隔くらいで実行してるのかなぁ(調べてない)
スマホにiftttを入れておくとActionが実行されたときに通知がきます。

で結果はこんな感じ

2017/07/26 20:50:38.000000:GET :array (
  'text' => ' ヘ\\\'j゚ケkリO驎渹FFTPg汽_ス・定ニWfD_驎燁j渋jk・,
)
2017/07/26 20:50:38.000000:POST:array (
)
2017/07/26 20:50:38.000000:BODY:NULL

・・・日本語化けとる・・・
しかも、POSTで作ったのになぜGETに結果が入っているのか!?
謎は深まるばかり・・・
だけど、一応これでiftttからWebリクエストを受け取れました。

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)