2
2

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 3 years have passed since last update.

GASを使ってtrello webhookを受ける時のハマりどころ

Last updated at Posted at 2021-11-29

結論を最初に

  • trelloのwebhookとして、GASでサーバーを公開するときには、以下のステップで
    • 最初(Webhook登録する時)は、認証付きの権限
    • doPost、doGetにアクセスさせたい時は、全体公開の権限で。
      • このときに、「新しいデプロイ」ではなく、「デプロイの管理」から権限だけ変更すること。

きっかけ

  • trelloのボードで,doneになったときにいろんな処理をさせてみたくなった
    • Slackに通知とか
    • irucaくん打刻とか
  • 詳細を書き出すと長くなってしまったので、この記事はハマったところのみ記載することとする。

webhookに登録するURLを公開(限定公開)

  • 「新しいデプロイ」から、ウェブアプリとして公開。ログインが必要な設定を選択する
    • 全体公開にすると、trello登録時の確認で403エラーが返って登録ができないため
      スクリーンショット 2021-11-29 9.18.50.png

webhookに登録する

  • 全体公開となってる場合は以下のエラーが出る。限定公開とすること。

  • うまく登録できると以下のようなレスポンスが帰ってくる
    スクリーンショット 2021-11-29 9.32.02.png

  • Tips:リクエスト時に、「'muteHttpExceptions' : true」を渡しておくとレスポンスのログを省略しないので便利です。

function createWebhook(){
  var requestUrl = 'https://api.trello.com/1/tokens/' + trelloToken + '/webhooks/?key=' + trelloKey;
  var options = {
    'method' : 'post',
    'headers': {'ContentType': 'application/json'},
    'payload' : {
      'description': 'Webhook of Trello',
      'callbackURL': callbackUrl,
      'idModel': boardId
    },
    'muteHttpExceptions' : true
  }
  Logger.log(UrlFetchApp.fetch(requestUrl, options));
}

trello webhookの用のURLの権限を変更する(全体公開)

  • このときに、「新しいデプロイ」ではなく、「デプロイの管理」から権限だけ変更すること。
    スクリーンショット 2021-11-29 8.59.32.png

その他の自分用反省・ノウハウ

  • リリース時にWebhookのdelete/createを投げられる仕組みを作っておくと良さそう。
    • 新しいデプロイ(限定公開)
    • delete もとのwebhookid/ create あたらしいURL みたいな処理
    • デプロイ管理から権限を変更
2
2
1

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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?