💬

GASでGooglechatにメッセージを投稿する

2023/05/31に公開

GASでスレッドを指定してGooglechatへメッセージ投稿します

webhookのurlを取得

チャットスペース名をクリック→アプリと統合をクリック→webhookの管理
からwebhookを追加し、urlの取得ができます。

googleのリファレンスに追加方法が詳しく記載されていました。
https://developers.google.com/chat/how-tos/webhooks?hl=ja#step_1_register_the_incoming_webhook

チャットスペースのIDを取得

チャットスペースを開いている時のurlに載っています。
https://〜〜chat/space/abcd1234

スレッドIDの取得

取得方法には2通りあります
①チャット送信したレスポンスから取得
②デベロッパーツールから確認

①レスポンスから取得
webhookのurlを使用してチャットを投稿し、レスポンスの中のname部分がスレッドIDです。

"thread": {
      "name": "spaces/AAAAAAAAAAA/threads/BBBBBBBBBBB"
    }

②Chromeのデベロッパツールで確認
デベロッパツールでソースコードを確認し、data-topic-id="aaaaa_aaaaa"の部分とチャットスペースのIDを組み合わせます。

"spaces/スペースID/threads/スレッドID"

送信処理

取得したwebhookのurlとスレッドIDを使ってチャットを投稿します。

function sendMessage() {

  let url = "webhookのurl";

  let thread = "スレッドID";

  let message = {
    'text': 'チャットの文面',
    'thread': {
      'name': thread
    }
  }

  let options = {
    'method': 'POST',
    'headers': {
      'Content-Type': 'application/json; charset=UTF-8'
    },
    'payload': JSON.stringify(message)
  };

  let response = UrlFetchApp.fetch(url, options); //送信処理
  console.log(response);

スレッドIDを指定しない場合は新しいスレッドを立ててのチャット投稿になります。

Discussion