仕事でチーム間のコミュニケーションツールとして使い始めたチャットワークだが、
最近は「いろんなサービスやスクリプトからの通知を集めるツール」としての利用がメインになってきている。
以前記事にした、
「Subversionのコミット情報にメンバーがすぐに気づけるように通知するスクリプト」
を書いたのがきっかけで、
この仕組みを流用すればメールを汚さずにいろんな通知を一元管理できるのでは?
と思いついて色々チャットワークに自動通知するスクリプトを書き始めた。
ただ通知するだけなのだけど、ボットが
「ブログのはてブが増えたよ!」とか
「AmazonにKindle本が追加されたよ!」とか
発言してくれることでチェックの手間が減るのが楽しい。
本題
そんな時に、「IFTTTにMakerチャンネルができた」という話を聞いて、
これを使えば自動通知がさらに捗りそうだ、ということで試してみた、というのが今回の本題だ。
IFTTT(If This Then That)とは
EvernoteやTwitter等様々なアプリやWebサービス(チャンネルと呼ばれる)の更新を監視して、
更新が発生するとをあらかじめ登録しておいたアクションを実行してくれるというサービスで、
これを使えばプログラムを自作しなくても手軽に連携の仕組みが作れるという、
自動化心をくすぐられるサービスだ。
IFTTTは便利なサービスなのだが、以前はチャンネルが用意されていないサービス間の連携がしにくい、という欠点があった。
チャットワークもチャンネルが用意されていない。
それが、Makerチャンネルが使えるようになったことで多少やりやすくなった。
Makerチャンネルは簡単に言うと「他のチャンネルとWebアプリを連携できる」チャンネルだ。
自作のWebアプリをトリガーとしてMakerチャンネル経由で他のチャンネルを呼び出したり、
特定のチャンネルで更新が発生したら指定したURLにリクエストを飛ばすようなことができる。
これを使えば、何かしらのサービスで更新が発生した時に自作のWebアプリを経由してチャットワークにメッセージを保存する、みたいなこともできるわけだ。
Makerチャンネルを使ってチャットワークに連携するサンプルを作る
試しに、Node.jsで作成したWebアプリ経由で「Date&Timeチャンネルをトリガーに、定時になったらチャットワークに通知するレシピ」を作ってみた。
Webアプリを準備する
まずはIFTTTからアクセス可能なWebアプリを用意する。
ここがややハードルの高いところ。
今回は「http://自分のサーバのドメイン:3000/ifttt/notify_workend」というURLを用意し、
POSTリクエストで「time:時間」「message:メッセージテキスト」をJSON形式で渡すとその内容をチャットワークに送れるようにした。
下記はnode.js + Express4のサンプルソース:
(Webアプリでパラメータを受け取れたら環境は問わないので、Apache + PHP環境とかでも可)
REST API Sample For IFTTT Maker Channel.
こういうものを1つ用意しておけば、URLを追加していくだけでいろんなチャンネルと連携できるようになる。
IFTTTのレシピを作成する
次はITFFF側で用意したURLを呼び出すレシピを作成する。
トリガーとなるチャンネルの選択後、Makerをアクションとして選択して新しいレシピを作成する。
アクションの設定を行って、
作成したWebアプリのURLとパラメータを定義する。
「Content Type」を「application/json」にしておき、BodyでJSONを渡すようにしている。
この内容で登録しておくと、平日の17:30になったら、「Time to leave work」というメッセージが
用意したURLに飛び、そこを経由してチャットルームにメッセージが投稿される。
おわり
とりあえず仕組みが作ってみたが、まだまだ活用法は模索中。
また良い通知レシピを思いついたら試してみたい。
実践Node.jsプログラミング Programmer's SELECTION
- 作者: Mike Cantelon,Marc Harter,T.J. Holowaychuk,Naithan Rajlich
- 出版社/メーカー: 翔泳社
- 発売日: 2014/06/10
- メディア: Kindle版
- この商品を含むブログを見る