Zapierというのは各種WebサービスのAPIを利用してWebサービス間の処理を自動で連携してくれるWebサービス。
同様のものにIFTTTというのがあるけどZapierはより多くのWebサービスに対応してるらしい。
対応してるサービスとしてはTwitterとかFacebook、GmailといったものからAWSのいくつか、Amazon S3とかAmazon SNSあたりも対応してる。
一定範囲までは無料で使えるので早速、TwitterとHipChatをZapierを使って連携してみる。
なお、一部のサービスは無料では使えないっぽい。
サインアップはメールアドレスだけでできるので省略。
Zapとは
Zapierでは自動化の定義をZapという概念で管理していく。
Zapの作成時にトリガーとなるWebサービスとイベント選択し、イベントが発生した場合に行うアクションとしてWebサービスと行いたいアクションを定義していく。
というわけで今回はTwitterであるキーワードを含むツイートが行われたらそれをHipChatに通知するというもの。早速作っていく。
HipChatのAPIキー作成
まず、HipChatに通知するためにHipChat側のAPIトークンの取得が必要になる。
APIトークンはHipChatにブラウザからログインして表示されるトップページのGroupAdmin > APIのページで取得する。
「Create New Token」で「Type」をAdminを選択して「Create」ボタンを押すと新しいトークンが作成されて画面上に表示される。Labelはなくても構わない。
ここに表示されているTokenという英数字の羅列からなる文字列を控えておく
Zapの作成
続いてZapierでZapを作成する。
ログインして表示されるダッシュボード上にある「Make a Zap」をクリック。
1. Choose a trigger and action
トリガーとしてTwitterを選択し、さらに「Search Mention」を選択。右側のアクションには「HipChat」で「Send Message」を選択して「Continue」。
以降は選んだトリガーとかアクションによって項目が変動する。
2. Select a Twitter account
「Connect a Twitter Account」をクリック。
Twitterへの接続情報の名前を入力しContinue。Auto Followはどちらでも構わない。
なお、別のZapでこれらのアカウントをまた使う場合はここで入力した名前で登録済アカウントを選択できるようになっている。
そうすると、Twitter側の認証画面が開くので連携したいアカウントでログインした上で認証する。
3. Select a HipChat account
これも同じように「Connect a HipChat Account」をクリック。
接続情報に名前を付け、先ほど取得したHipChatのAPIトークンを入力する。
4. Filter Twitter triggers
今回トリガーとして特定キーワードがツイートされた場合というものを利用しているのでそのフィルタ条件を設定する。
「Search Term」に検知したいキーワードを入力する。
また、Custom FilterとしてTwitterAPIがサポートしている各種属性でもフィルタすることが可能。
例えば日本語のツイートだけを対象にしたい場合は今回のように「user_langがjaにマッチするもの」というCustom Filterを設定すれば良い。
5. Match up Twitter Search Mention to HipChat Message
続いて、HipChat側の通知先ルームやメッセージのFromおよびメッセージ内容を定義していく。
ルームは接続したHipChatのアカウントが参照可能なものがリストに出てくるのでそれを選択すればいい。
ちなみに、FromやMessageには下記画像のようにTwitterのAPIで利用可能なフィールドの値を動的に埋め込むことが可能。
今回はデフォルトのままとしたがHipChat側で表示される際の色なども指定可能。
6. Test this Zap
最後に作ったZapをテストする。
どれか適当なサンプルの「Test Zap with this sample」をクリック。「Success!」と表示が変われば成功。
7. Name and turn this Zap on
最後にこのZapに名前を付けて有効にする。
なお、画面上でも表示されているがZapierからはTwitterのツイートを5分毎にチェックするようだ。
HipChat側を確認してみると以下のような感じでテストメッセージが送られてきていることがわかる。
実際にテストしてみる
では、実際にテストしてみる。
自分のアカウントでもなんでもいいのでTwitterでさっき設定したキーワードをつぶやいてみよう。
今回の場合は「hogehoge」である。自分のアカウントでつぶやくのはちょっと恥ずかしいが仕方ない。
ツイートしてしばらく経つとHipChat上にちゃんとメッセージ通知されているのがわかる。
まとめ
Zapierを利用すれば色んなWebサービスの連携が可能。
HipChatの場合、GithubとかPivotalTrackerはHipChatへの通知に対応してるがそれ以外のサービスでは対応していないことも多い。
今回紹介した以外にも多くのサービスに対応しているのでいろいろ連携してしまおう。
なお、無料アカウントではZapは5個まで、1ヶ月あたりに処理するタスクは100個まで、Zapの実行は15分毎などの制約がある。