BacklogとTeamsをLogic Appsで連携する

Logic AppsはMicrosoft社のサービスだけでなく、多くのサードパーティサービスと統合的に接続し、アプリ・データ・デバイスの連携を実現するとても便利な機能です。
今回は弊社でも多く利用しているブラウザーベースの課題管理ツール「Backlog」の通知をLogic AppsでTeamsに連携する手順を紹介します。
※Logic Appsのポータル表示名は2018年5月頃より「ロジックアプリ」に変更となったようです。本記事内の手順においてはポータルの画面と整合性をとるために「ロジックアプリ」で表記します。

 

1.概要
今回はBacklogで課題の更新を行った際に、「課題名」、「担当者」、「ステータス」がTeamsに連携されるよう設定を行います。
仕組みとしては以下の図の通りです。

設定手順は以下の流れで進めます。
①Backlogから取得するデータのJSONファイルを作成する
②Logic Appsの作成
・JSONスキーマの登録
・Teamsの送信先、通知内容の登録
③BacklogにWebhookの送信先を登録する

 

2.設定手順
①Backlogから取得するデータのJSONファイルを作成する
まずはBacklogから抽出するデータをJSONファイルで作成します。
以下サイトに記載されているBacklogAPIリファレンスのレスポンスボディを基にJSONを作成します。

Backlog APIとは

「課題名」、「担当者」、「ステータス」を取り出すデータを作成したJSONファイルがこちらです。
——-
{
"content": {
"summary":"",
"assignee":{
"name":""
},
"status":{
"name":""
}
}
}
——-

(2)Logic Appsの作成
Azureポータルからロジックアプリを作成・設定していきます。

(1)Azureポータルにログインし「ロジックアプリ」を選択します。

(2)「追加」をクリックし、各種設定値を入力し、「作成」をクリックします。

(3)作成したLogic Appsをクリックします。

(4)ロジックアプリデザイナー画面の「空のロジックアプリ」をクリックします。

(5)「要求」をクリックします。

(6)「要求-HTTP要求の受信時」をクリックします。

(7)「サンプルのペイロードを使用してスキーマを生成する」をクリックします。
※Logic AppsにはJSONスキーマを入力する必要があるため、作成したJSONをJSONスキーマに変換する必要があります。

(8) (1)で作成したJSONを入力し、「完了」をクリックします。

(9)「新しいステップ」→「アクションの追加」をクリックします。

(10)Teamsを検索し、「Post message」をクリックします。

(11)「サインイン」をクリックし、Teamsを利用するアカウントを入力しサインインします。

(12)メッセージを投稿する「Teams ID」「チャンネル」を入力します。

(13)メッセージ内容を入力します。
また、⑧で設定したJSONデータを動的コンテンツとしてメッセージ内容に含めることも可能です。
ここでは、「課題名」、「担当者」、「ステータス」のデータを抽出し入力するよう設定します。

(14)ロジックアプリを保存します。

(15)生成される「HTTP POST の URL」をコピーします。


③BacklogにWebhookの送信先を登録する
Backlog側の設定を行います。
(1)Backlogにログインし、対象のプロジェクトの「設定」→「Webhook」→「Webhookを追加する」をクリックします。


(2)「Webhook名」を入力し、(2)-⑮でコピーしたURLを入力し、Webhookを飛ばすイベントを選択します。


(3)「Webhookを追加する」をクリックします。


以上で作業は終了です。

 

動作確認

実際に課題を更新してみます。
一応通知内容に含まれる項目を赤枠で囲んでみました。


無事Teamsにメッセージが通知されました。
赤枠で囲んだ「件名」、「ステータス」、「担当者」もメッセージに含まれてますね。

 

今回はBacklogとTeamsの組み合わせで試してみましたが、Logic Appsで連携できるサービスは増えています。
企業で利用するコミュニケーションツールが増えていく中で、通知や情報の統合を検討するのであれば、Logic Appsで連携させて一元化を図るのもよいのではないでしょうか。

注意事項・免責事項

※技術情報につきましては投稿日時点の情報となります。投稿日以降に仕様等が変更されていることがありますのでご了承ください。

※公式な技術情報の紹介の他、弊社による検証結果および経験に基づく独自の見解が含まれている場合がございます。

※これらの技術情報によって被ったいかなる損害についても、当社は一切責任を負わないものといたします。十分な確認・検証の上、ご活用お願いたします。