3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

いえらぶAdvent Calendar 2022

Day 12

webhookURLでGoogleSpreadSheetsに自動書き込みしてみる

Last updated at Posted at 2022-12-13

はじめに:webhookURL とは

サービス同士の連携に使うもの。webhookURLを発行したり設定できるサービスは色々ある。
今回は、「backlog」と「GoogleSpreadSheets」を連携させて、backlogでタスクが登録されたときにGoogleSpreadSheetsに自動で書き込みできるようにする手順を例に紹介します。

用意するもの

  • backlogのプロジェクト(できればプロジェクト管理者権限以上)
  • GASが使えるGoogleSpreadSheets

01.GoogleSpreadSheetsを作成

backlogのデータをインサートしていくGoogleSpreadSheetsを用意します。

02.GASでwebhookURLを作成

GoogleSpreadSheetsで「ツール」>「スクリプトエディタ」をクリック!
deploy(公開)してwebhookURLを生成します
image.png

deployをクリックして表示されるCurrent web app URL:をコピーしてください。

03.backlogにWebHookURLを設定する

場所:backlogの「プロジェクト設定」>「インテグレーション」>Webhookの「設定」>「Webhookを追加する」
  • WebHook URLのフォームに、GASで生成したURLを登録する。
  • 通知するイベントで、webhookのトリガーを設定する。
    今回は「課題の追加」を選択しています。

実行テストをして、送信履歴でjsonが飛ばせていることを確認できればOK!

04.GoogleSpreadSheetsに自動書き込みする

GASにコードを書いていきます。
backlogで発行されたjsonをGAS側で成形して、シートに書きこみする処理。jsonで届くデータの中で、シートに書き込みしたいカラムをdata.contentで指定してください。

(sample)backlog→GoogleSpreadSheets

// backlogで課題の追加をした時にGoogleSpreadSheetsに書き込みする処理
function doPost(e) {
    let ss = SpreadsheetApp.getActive()
    let sheet = ss.getActiveSheet();
    let data = JSON.parse(e.postData.contents);
    sheet.appendRow([
        data.content.key_id,
        data.content.issueType.id,
        data.content.issueType.name,
        data.content.summary,
        data.content.description
    ]);
    return data;
}

backlogで課題の追加をした時にシートに行追加されるようになりました!!!
webhookURLを設定できるいろんなサービスで使えます、機会があればぜひお試しください!

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?