Zapierを使ってツイートをChatWorkに投稿させる

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Zapierを使って Twitter と ChatWork を連携させる

twitter であるハッシュタグが見つかったら、Facebook にポストするというように、 “If this, then that” のワークフローを Web サービス間で定義する IFTTT という Web サービスが存在します。

コードを書かずにGUI操作だけでワークフローを定義出来るのが何よりも魅力です。

ジョブを作成して、cronJenkins のようなジョブスケジューラーで実行させたり、AWS Lambda をスケジュール実行させる事もできるでしょうが、シンプルな定形処理であれば、IFTTT のようなサービスを利用すると、運用・管理の手間が軽減されます。

さて、IFTTT の類似サービスに、高機能版 IFTTT とでも言うべき Zapier というサービスが存在します。

今回は Zapier を使って、ある Twitter アカウントがツイートをするたびに、ChatWork にメッセージ投稿させてみます。

IFTTT と Zapier の違い

IFTTT は機能を絞り、使いやすさ、わかりやすさを目指しているのに対して、Zapier はシステマティックに細かくワークフローを定義出来るようにしています。

IFTTT はあくまで “If this, then that” のシンプルな2ステップのフローにこだわるのに対して、 Zapier は複数ステップのフローに対応し、特定の文字列を含んでいる場合のみ処理するフィルター機能まで存在することからも、サービスの方向性の違いを感じられます。

Zapierを使ってツイートをWebサービスを連携させる

2016年7月4日時点でZapier は 500 以上の膨大なサービス・プロトコルと連携出来ます。

サービス一覧 https://zapier.com/zapbook/

今回は Zapier を使って、新しいツイートがあったら、チャットサービスの ChatWork に通知します。 Zapier ChatWork 連携は IFTTT が対応していない機能の一つです。

操作のアウトライン

  1. ChatWork の API トークンの取得
  2. Zapier サービスに会員登録
  3. ワークフローの定義

ChatWork の API トークンの取得

チャットワークAPIでは、現在APIトークンによる認証のみを提供しています。 次のページから API トークンを取得します。

認証方法 - チャットワークAPIドキュメント

Zapier サービスに会員登録

zapier.com にアクセスし、名前とメールアドレスを入力し、サービスに登録します。

zapier-top メールアドレスの疎通確認は行われないため、メールアドレスを間違えないようにしましょう。

ワークフローの定義

Zapier では “If this, then that” のフロー全体を “ZAP” とよび、”If this”を “TRIGGER”、”then that” を “ACTION” と呼びます。

ZAP の定義

“Make a ZAP” のリンクから ZAP を作成します。

 

TRIGGER の定義

トリガーアプリケーションには “Twitter” を選択し、トリガーには ”User Tweet(Triggers when a specific user tweets)” を選択します。

04-trigger-choose-triger

Twitter API 呼び出し元の Twitter アカウントと Zapier アカウントを連携させます。

 

05-trigger-choose-account

 

Zapier に Twitter アカウントへのアクセスを許可します。

 

06-trigger-auth-zapier

許可する Twitter アカウントにログインします。

 

07-trigger-auth-zapier

ツイートをチェックする Twitter アカウントを入力します。

08-trigger-choose-twitter-account

 

09-trigger-choose-twitter-account

連携試験を行いします。

10-trigger-choose-twitter-account

ACTION の定義

アクションアプリケーションには “ChatWork” を選択し、アクションには ”Send Message(Post a new message to a specific group chat in ChatWork)” を選択します。

22-action-choose-action

 

チャットメッセージ投稿先の ChatWork アカウントと Zapier アカウントを連携させます。

23−action-choose-account

ChatWork の API トークンを入力します。

24-action-choose-api-token

ChatWork の投稿先チャット部屋(Room)と投稿メッセージ文(Text)を設定します。

「Text」には ChatWork のマークアップを使えます。 また、Action で取得可能なツイート属性の一覧は、検索ボックスから検索可能です。

25-action-setup-chatwork-message

最終的に、次のような「Text」にしました。

26-action-setup-chatwork-message

ACTION 内容はプレビューできます。

27-action-setup-chatwork-message

今回はシンプルな IFFT 形式のため、「Finish」ボタンから ZAP の作成を終えます。

 

31-create-zap

 

 

最後の ZAP を有効化(ON)します。

32−activate-zap

33-zap-created

管理画面の「My Zaps」から作成した ZAP を確認できます。

34−my-zaps

動作確認

それでは、しばらく放置してみると、以下のようにチャットワークにメッセージ通知されました。

zapier-twitter-chatwork-sample

実行履歴

Zapier では IFTTT ワークフローの実行を TASK と呼びます。 各 TASK は My Zaps の Zap 一覧画面において、各 Zap の HISTORY から確認できます。

zapier-history

遷移先のタスク履歴画面が以下です

zapier-task-history

Zapier は有料プランでなければ実用的ではない

Zapire は 500 以上のアプリケーションと連携可能で、複雑なワークフローを定義出来る一方で、有料プランを選択しなければ、機能制限が厳しく実用的ではありません。

プランは次図の通りです。

Plan Price Multi-step Zaps Premium Apps Autoreplay Tasks Tasks/mo Zaps Zaps Run Every
Free $0/month 100  5 15 Minutes
Basic $20/month 1,000 20 15 Minutes
Business $50/month 3,000 50 5 Minutes
Business Plus $125/month 10,000 125 5 Minutes
Infrastructure $250/month 50,000 250 5 Minutes

評価軸を順に見ていてきます。

Multi-Step Zaps

無料プランでは IFTTTと同じ “If this, then that” の 2 ステップしか定義できません。 Zapier の強みである 3 ステップ以上を定義したい場合は、有料プランを選択しましょう。

Premium Apps

Zapier は500以上のアプリケーションと連携します。 しかし、Salesforce、Zendesk など一部のアプリケーションは “Premium Apps” に分類され、これらアプリケーションは有料プランでなければ選択できません。

Autoreplay Tasks

連携サービスが一時的に落ちていて、Zap が正常終了しなかった時に再実行する仕組みが Autoreplay です。 この機能が必要場合は Business 以上のプランを選択しましょう。 Zap の実行履歴(History)から、手動で Zap を再実行してリカバリーするのは面倒ですよね。

Tasks/mo

Zapier では定義した Zap の実行単位を Task と呼びます。 ある Zap が 3 回呼びだされれば 5 Tasks となります。

プランごとに、月あたりの Tasks 数上限があります。 無料プランは 100 Tasks/mo で一日に約3回のペースです。

最上位の Infrastructure プランでも 50,000 Tasks/mo です。

Zapier の Zap は、AWS Lambda のように、カジュアルに高頻度で呼び出すことは想定していないようです。

Zaps

Zap の上限数はプランごとに異なります。 無料プランでは 5 Zap までです。

Zaps Run Every

Zap の実行間隔です。

Free/Basic プランは 15 分間隔、より上位のプランは 5 分間隔で実行されます。

まとめ

Zapier の簡単な使い方を紹介しました。

連携サービスの多さは魅力的ですが、有料プランでなければサービス制限が厳しく、とりわけ Task 実行数は有料プランであっても、制限が厳しく感じました。

Zapier の制限に引っかからないようなワークフローを利用する限りでは、なんとか使えるのではないでしょうか。中でも ChatWork 連携が標準で備わっているのは、ChatWork ユーザーには魅力的かと思います。

参考リンク