GoogleChatにwebhookから通知

Google Chat(旧Hangouts)はSlackなどと同様のビジネスチャットで、Google Workspaceに統合されています。

テーマ別のスペースやチャットボットなどの一般的な機能に加えて、Gmailと統合されている点は最大の特徴でしょう。スマホ向けには同名のアプリがありますが、Gmailアプリにチャットのタブが表示されていれば通知を含めてGmailアプリのみで利用できます。

Google ChatのWebhook

システム通知をチャットスペースに投稿するためのWebhookは、原始的なcurlの例では以下のような形式で利用できます。

curl -XPOST -H 'application/json; charset=UTF-8' \
     -d '{ "text": "<users/all> Messages to notify" }' \
     'https://chat.googleapis.com/v1/spaces/XXXXXXX/messages?key=xxxxxxxxx&token=yyyyyyyyy'
  • URLに認証情報が含まれており、他のクレデンシャルは不要
    • Webhook URLはスペースごとに発行でき、Webの各スペース画面から取得できる
    • クエリパラメータにkeytokenがあり、bashから送信する際はURLをクオートしないとURLが切れて403エラーになる
    • スペース管理画面でrevokeも可能
  • リクエストはJSONをPOST
    • 簡素な形式では、textにメッセージを記述。限定されたMarkDownやリンクを書ける。 リファレンス参照
    • <users/all>でスペース参加者へのmentionを追加でき、アプリ通知される。
    • 絵文字も記載できる
    • より複雑なフォーマットに カード形式もある

この例のようにビルドツールからcurlを実行するほか、各言語でHTTPリクエストを発行しても良いでしょう。
レスポンスのJSONで動作確認可能です。

⁋ 2021/10/12↻ 2024/11/07
中馬崇尋
Chuma Takahiro