読者です 読者をやめる 読者になる 読者になる

Zapierで各種Webサービスを自動連携させてみる

Zapierというのは各種WebサービスのAPIを利用してWebサービス間の処理を自動で連携してくれるWebサービス。
同様のものにIFTTTというのがあるけどZapierはより多くのWebサービスに対応してるらしい。
対応してるサービスとしてはTwitterとかFacebookGmailといったものから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はなくても構わない。

f:id:Keisuke69:20131219130426p:plain

ここに表示されているTokenという英数字の羅列からなる文字列を控えておく

Zapの作成

続いてZapierでZapを作成する。
ログインして表示されるダッシュボード上にある「Make a Zap」をクリック。

f:id:Keisuke69:20131219130652p:plain

1. Choose a trigger and action

トリガーとしてTwitterを選択し、さらに「Search Mention」を選択。右側のアクションには「HipChat」で「Send Message」を選択して「Continue」。

f:id:Keisuke69:20131219131018p:plain

以降は選んだトリガーとかアクションによって項目が変動する。

2. Select a Twitter account
「Connect a Twitter Account」をクリック。
f:id:Keisuke69:20131219131704p:plain

Twitterへの接続情報の名前を入力しContinue。Auto Followはどちらでも構わない。
なお、別のZapでこれらのアカウントをまた使う場合はここで入力した名前で登録済アカウントを選択できるようになっている。
f:id:Keisuke69:20131219131825p:plain

そうすると、Twitter側の認証画面が開くので連携したいアカウントでログインした上で認証する。

3. Select a HipChat account
これも同じように「Connect a HipChat Account」をクリック。

f:id:Keisuke69:20131219132329p:plain

接続情報に名前を付け、先ほど取得したHipChatのAPIトークンを入力する。

f:id:Keisuke69:20131219132732p:plain

4. Filter Twitter triggers
今回トリガーとして特定キーワードがツイートされた場合というものを利用しているのでそのフィルタ条件を設定する。
「Search Term」に検知したいキーワードを入力する。
また、Custom FilterとしてTwitterAPIがサポートしている各種属性でもフィルタすることが可能。
例えば日本語のツイートだけを対象にしたい場合は今回のように「user_langがjaにマッチするもの」というCustom Filterを設定すれば良い。

f:id:Keisuke69:20131219133425p:plain

5. Match up Twitter Search Mention to HipChat Message
続いて、HipChat側の通知先ルームやメッセージのFromおよびメッセージ内容を定義していく。
ルームは接続したHipChatのアカウントが参照可能なものがリストに出てくるのでそれを選択すればいい。
ちなみに、FromやMessageには下記画像のようにTwitterAPIで利用可能なフィールドの値を動的に埋め込むことが可能。
f:id:Keisuke69:20131219134010p:plain

今回はデフォルトのままとしたがHipChat側で表示される際の色なども指定可能。

6. Test this Zap
最後に作ったZapをテストする。
f:id:Keisuke69:20131219134330p:plain

どれか適当なサンプルの「Test Zap with this sample」をクリック。「Success!」と表示が変われば成功。

f:id:Keisuke69:20131219134453p:plain

7. Name and turn this Zap on
最後にこのZapに名前を付けて有効にする。
f:id:Keisuke69:20131219134600p:plain

なお、画面上でも表示されているがZapierからはTwitterのツイートを5分毎にチェックするようだ。

HipChat側を確認してみると以下のような感じでテストメッセージが送られてきていることがわかる。
f:id:Keisuke69:20131219134908p:plain

実際にテストしてみる

では、実際にテストしてみる。
自分のアカウントでもなんでもいいのでTwitterでさっき設定したキーワードをつぶやいてみよう。
今回の場合は「hogehoge」である。自分のアカウントでつぶやくのはちょっと恥ずかしいが仕方ない。

ツイートしてしばらく経つとHipChat上にちゃんとメッセージ通知されているのがわかる。

f:id:Keisuke69:20131219140022p:plain

まとめ

Zapierを利用すれば色んなWebサービスの連携が可能。
HipChatの場合、GithubとかPivotalTrackerはHipChatへの通知に対応してるがそれ以外のサービスでは対応していないことも多い。
今回紹介した以外にも多くのサービスに対応しているのでいろいろ連携してしまおう。
なお、無料アカウントではZapは5個まで、1ヶ月あたりに処理するタスクは100個まで、Zapの実行は15分毎などの制約がある。