Windows系のあれこれ

港区の SIer で よくわからんことをしている SE みたいな人です。Xamarin 中心です。

Backlog の更新を Zapier 経由で Microsoft Teams に通知する

一部のプロジェクトの課題管理には Nulab 社の Backlog を利用しています。
Backlog - Backlog [バックログ]

標準では通知はメールベースなのでいろんな通知がわんさか来てなにがなんだかわからなくなります。
メールからの脱却みたいな話もありますし。

でチャットコミュニケーションツールには Slack と Microsoft Teams を利用しています。
Slack に関しては様々な記事があがっているので今回は 最近ローンチされた Microsoft Teams に対して通知を飛ばしたいと思います。
Microsoft Teams – Group Chat software

手順

  • Zapier でトリガーを追加する
  • Backlog から Webhook を追加する
  • Microsoft Teams に コネクタを追加する
  • Zapier でアクションを追加する

詳細

Zapier でトリガーを追加する

Zapier とはサービスとサービスを連携してくれるハブサービスです。似たような有名どころで IFTTT とかでしょうか。
The best apps. Better together. - Zapier - Zapier

  • サインアップ

適当にサインアップします。
無料枠だと、2ステップまでとか制限がありますが、今回は無料で大丈夫です。
サインアップ後、画面上の「MAKE A ZAP!」ボタンを押します。
f:id:ShunsukeKawai:20170406162913p:plain:w600

  • Trigger 登録

Zapier をキックするトリガーを登録します。
今回ですと、Backlog の更新です。
様々なサービスから Webhooks by Zapier を選択します。
Webhook とは POST リクエストをサクっと呼んでくれる仕組みです。
f:id:ShunsukeKawai:20170406163234p:plain:w600
次の画面で Catch Hook を選択して「Save + Continue」ボタンを押します
f:id:ShunsukeKawai:20170406163626p:plain:w600
次の画面の Pick off a Child Key はブランクのまま「Continue」ボタンを押します。
そうすると Webhook の URL が自動生成されるので、URL をコピーして「OK,I did this」ボタンを押します。
f:id:ShunsukeKawai:20170406163912p:plain:w600
以上でトリガーができました。
この画面は後で使うのでブラウザは開いたままで次のステップに進みます。

Backlog から Webhook を追加する

先ほど作成したトリガーを呼び出す仕組みを Backlog 側に追加します。
Backlog のプロジェクト設定画面のメニューから「Webhook」を選択して「Webhookを追加する」ボタンを押します。
f:id:ShunsukeKawai:20170406162057p:plain
適当な名前を付けて、先ほど Zapier 側で生成されて URL を指定します。
イベントは今回は課題の追加に設定しておきます。
f:id:ShunsukeKawai:20170406165150p:plain
Backlog 側の設定は以上です。

Microsoft Teams に コネクタを追加する

実際に Teams に投稿するためのコネクタを追加します。
Teams のチャンネルのコンテキストメニューから「コネクタ」を選択します。
f:id:ShunsukeKawai:20170406165624p:plain
コネクタの一覧から Incoming Webhook を追加します。
f:id:ShunsukeKawai:20170406165804p:plain:w600
適当な名前と画像を設定して「作成」ボタンを押します。
f:id:ShunsukeKawai:20170406165933p:plain:w600
そうすると自動的にURLが生成されるので、コピーして「完了」ボタンを押します。
f:id:ShunsukeKawai:20170406170136p:plain:w600
Teams 側の設定は以上です。

Zapier でアクションを追加する

Zapier の画面に戻ってアクションを追加します。
こちらもトリガーと同じ様に Webhooks by Zapier を選択します。
f:id:ShunsukeKawai:20170406171244p:plain:w600
次の画面で POST を選択して「Save + Continue」ボタンを押します。
f:id:ShunsukeKawai:20170406171351p:plain
次の画面では実際に Teams に通知する内容を設定します。
URL には先ほど Teams 側で生成された URL を設定します。
Payload Type は Json を設定します。
f:id:ShunsukeKawai:20170406173620p:plain
Data には Teams でどのような内容を通知するかを指定します。
こちらは Teams 側のお作法に準拠してください。以下のサイトが参考になります。
Office 365 Connectors API Reference - Outlook Dev Center

Zapier は STEP1 で設定したトリガー側から送信されるデータ(今回は Backlog の Webhook からのデータ内容)を以下のように選択できるようになっています。めっちゃ便利です。
f:id:ShunsukeKawai:20170406172209p:plain

例として以下の設定にしてみました。
f:id:ShunsukeKawai:20170406175426p:plain
Backlog は Project Key と Content ID の組み合わせで URLが生成されるので、通知から直接リンクできるようにしています。

それ以外の設定はデフォルトのままで大丈夫です。
「Save + Continue」ボタンを押すと自動的にテストが走って、
f:id:ShunsukeKawai:20170406180202p:plain
と Teams に通知されます!
やった!

おまけ

今回はアクションに Webhook を使用していますが、アクションのアプリに Teams が追加される動きもあるみたいです。
Microsoft Teams Integrations - Zapbook - Zapier

以上です。