Backlog「ガントチャート」の内容をSlackへ通知するレシピを作成したので紹介します。API連携は、iPaaS製品であるWorkatoを使用しました。iPaaSとは異なるアプリケーションを繋ぐ役割をしています。
Backlogには通知機能もありますが、業務に合わせた内容をSlackに通知してくれたら、業務効率化できると思い作成してみました。
Backlog「ガントチャート」の内容をSlackへ通知
「毎週ガントチャートの内容を通知したい」という課題
プロジェクト管理でBacklogを使用しています。毎週、担当者が課題(タスク)に取り組みます。以下のようにBacklogで、約1ヵ月のスケジュールを立てています。
Backlogはスケジュールを把握するためでも使用していますが、
「今週だれだっけ?」
「来週はだれだっけ?」
「わたしは次いつだっけ?」
とBacklogを見ないと把握できない状態でした。
なので、自動で毎週ガントチャートの内容をSlackに通知できれば良いなと思ったのがBacklogとSlackのAPI連携を作成するきっかけとなりました。
作ったもの
仕組み的には以下のような感じです。
BacklogとSlackを直接繋げずに、Workato通して連携しています。
定期実行でWorkatoを起動させて、Backlogのデータを取得しに行きます。
そのあと、Workatoでデータを (※簡単に) 綺麗にしてSlackへ通知させます。
以下は、Slackに通知されるメッセージ文です。
Workatoでメッセージ内容を作成し、自動で送信をしています。
Workato(iPaaS)はクラウド実行なので、PCが起動されていなくても実行から通知まで、ネットワーク上で完結します。また、Workatoはローコード開発が可能なため、ほぼマウス操作だけで作成ができます。
今回作ったWorkatoのレシピは以下です。
作り込めば、もっと綺麗に出来るかと思います・・・
今回は、個人の業務効率化用で「自分が分かればいいや」程度で作ったものです。
Workato(iPaaS)は、BacklogやSlack以外のSaaS製品にも繋ぐことができます。
業務効率化のメリットと、SaaS製品の可視化ができるため、IT戦略という観点でも期待できます。Workatoに関して別記事で紹介しているので、参考にしてみてください。
BacklogのAPI連携に必要な値
Backlog「ガントチャート」の内容をSlackへ通知はWorkatoで実現できました。
API連携には、主にBacklogの設定や値の確認が必要です。
作成時に使用した値を解説していきます。
APIキーの発行
まずは、BacklogのAPIキーを発行するため、Backlogの個人設定からAPIキーを発行します。
1.右上のプロフィール画像をクリックし個人設定へ移動
2.個人設定内のAPIをクリック
3.新しいAPIキーを発行の登録をクリック
※権限が無いとAPIキーは発行できません。
パラメーターを確認
課題一覧の取得 の Backlog API 情報
取得方法を決めていきます。APIキーを使って取得が可能な状態になったので、
何を取得するか決めていきます。
以下は公式ドキュメントです。この中の課題一覧の取得を使用します。
様々な条件を設定することができますが、今回使用したのは以下のみです。
項目 | 値 | 意味 |
---|---|---|
メソッド | GET | 取得するという指示 |
URL | /api/v2/issues | どのデータを取得するか |
クエリパラメーター名 | projectId[] | どのプロジェクトを取得か |
クエリパラメーター名 | categoryId[] | どのカテゴリーを取得するか |
クエリパラメーター名 | statusId[] | どのステータスを取得するか |
Backlog API に適した設定値
メソッドの設定値はGETですが、その他は取得したいBacklogの情報を設定する必要があります。取得方法は色々あるかと思いますが、私はBacklogのブラウザURLから取得しました。参考にしてみてください。
URL(どのデータを取得するか)
BacklogのブラウザURLを使用して、語尾にくっつけます
例
https://●●●●●●●.backlog.jp/ api/v2/issues
projectId[](どのプロジェクトを取得か)
プロジェクトIDを設定します。
プロジェクトIDは、プロジェクト設定のブラウザURLの語尾に表示されます。
categoryId[](どのカテゴリーを取得するか)
取得したいカテゴリーIDを設定します。
(必須ではないので、不要の場合はクエリパラメーター自体不要です。)
カテゴリーIDは、ガントチャートでカテゴリーを設定して検索されると、ブラウザURLの語尾に表示されます。
statusId[](どのステータスを取得するか)
取得したいステータスIDを設定します。
(必須ではないので、不要の場合はクエリパラメーター自体不要です。)
ステータスIDは、ガントチャートで状態を設定して検索されると、ブラウザURLの語尾に表示されます。
HTTPリクエストのレスポンス
API連携に必要な値を設定した後に、HTTPリクエストをします。
HTTPリクエストとは、インターネットを通じて情報を要求する方法です。様々なやり方がありますが、今回はWorkatoで設定しました。設定した場所は以下となります。
HTTPリクエストが正常に通信ができたら、以下のような、Responseの値が返ってきます。
(上部にも色々書いてあって)
Response: {
"Array": [
{
"ID": "XXXX",
"Project ID": "YYYY",
"Issue key": "ZZZZ-87",
"Key ID": "AA",
"Issue type": {
"ID": "BB",
"Project ID": "YYYY",
"Name": "タスク",
"Color": "#XXXXXX",
"Display order": 0
},
"Summary": "プロジェクト詳細1",
"Description": "",
"Resolution": null,
"Priority": {
"ID": "CC",
"Name": "中",,,,,,,
(下部にもまだ色々書いてあって)
戻り値は、名前と値が組み合わせているjsonです。この中に、課題名や担当者名などが書かれています。このjsonを良い感じに整理するとSlack通知用のメッセージ文にできます!
・・・私は、AIでjsonを整理させました。
AIにPythonを書いてもらい、そのコードをWorkatoにコピペしています。
なので、※簡単に綺麗にできました。以下の記事を参考にしてみてください。
iPaaSがあると1から作る必要はない
今回は「Backlogのプロジェクトを管理する機能」と「Slackのチームと連携できる」 をWorkatoで連携しました。SaaSの機能だけを繋げて、新しい価値を生み出しました。
「プロジェクト管理も出来てコミュニケーションも取れてお菓子も作ってくれる最高のSaaS製品がほしい!」となると、膨大なコストが発生します。
Workato(iPaaS)を利用すれば、必要な機能だけを繋げてしまえば良いので、手間とコストを大幅に削減し、開発の生産性が向上します。
今後も、QiitaでWorkatoを使った業務効率化を紹介していこうと思います!
-参考-