GASとTeamsを連携しWebhookでチャネルに自動通知を行う
やりたいこと
GASを使ってTeamsのチャネルに自動投稿をしたい。
あわよくばメッセージ内で特定のメンバーにメンションし、かつ時間指定して毎日特定の時刻に定期実行したい。
解決法
1. Incoming WebhookのURLを取得
TeamsではIncoming Webhookを利用できるので、その下準備としてWebhook URLを取得しておく。
やり方は公式ドキュメントが参考になる。
1. メッセージ作成
今回は例として「Adaptive Card」の形式でメッセージを送信してみる。
送信内容をオブジェクトとして設定する。
今回はサンプルなのでTextBlock
のみを使って単純なテキストのみを送信するが、公式が提供しているGUI上のアダプティブカードデザインツールを使えばより複雑なものを設定できる。
2. メンションを加える(任意)
特定のメンバーに対してメンションし通知したい場合は下記の方法で実現できる。
【Teams】Incoming Webhookでメンションを付けて個人宛に通知する
3. 送信処理の実装
最後にTeamsへの送信処理の実装。
先ほど取得したIncoming WebhookのURLと送信内容を渡し、GASのUrlFetchApp.fetch()
でPOSTすれば完了。
4. トリガー設定(任意)
時間指定して毎日特定の時刻にGASのジョブを実行したい場合は下記の方法で実現できる。 【GAS】時間指定で毎日定期実行されるトリガーを設定する