受信 Webhook を使用すると、Chat アプリではないアプリケーションから Google Chat に非同期メッセージを送信できます。たとえば、サーバーがダウンしたときに Google Chat のオンコール担当者に通知するようにモニタリング アプリケーションを構成できます。
Chat アプリを使用した Chat スペース内のメッセージの非同期送信、更新、削除については、メッセージの作成、読み取り、更新、削除をご覧ください。
Prerequisites
このガイドのサンプルを実行するには、次の準備が必要です。
Python
- Python 3.10.7 以降
- インターネットとウェブブラウザへのアクセス。
- Google Chat にアクセスできる Google Workspace アカウント
- 既存の Google Chat スペース。
httplib2
ライブラリ。必要に応じて、次のコマンドライン インターフェース(CLI)コマンドを実行して、pip を使用してライブラリをインストールします。pip install httplib2
Node.js
- Node.js と npm がインストールされていること。
- インターネットとウェブブラウザへのアクセス。
- Google Chat にアクセスできる Google Workspace アカウント
- 既存の Google Chat スペース。
Apps Script
- インターネットとウェブブラウザへのアクセス。
- Google Chat にアクセスできる Google Workspace アカウント
- 既存の Google Chat スペース。
Java
- Java 11 以降
- Apache Maven
- インターネットとウェブブラウザへのアクセス。
- Google Chat にアクセスできる Google Workspace アカウント
- 既存の Google Chat スペース。
Webhook を作成する
Webhook を作成するには、メッセージを受信する Google Chat スペースに登録し、メッセージを送信するスクリプトを作成します。
ステップ 1: 受信 Webhook を登録する
- ウェブブラウザで Google Chat を開きます。
- Webhook を追加するスペースに移動します。
- 上部のスペースのタイトルの横にある下矢印 > [アプリと統合] をクリックします。
- [Webhook の管理] をクリックします。
- このスペースにすでに他の Webhook がある場合は、[別の Webhook を追加] をクリックします。それ以外の場合は、この手順をスキップします。
- [名前] に「Quickstart Webhook」と入力します。
- [アバターの URL] に「
https://developers.google.com/chat/images/chat-product-icon.png
」と入力します。 - [保存] をクリックします。
- 完全な Webhook URL をコピーするには、[ コピー] をクリックします。
- ボックスの外側をクリックして [受信した Webhook] ダイアログを閉じます。
ステップ 2: Webhook スクリプトを作成する
この例の Webhook スクリプトは、Webhook URL に create message リクエストを POST 送信して、Webhook が登録されているスペースにメッセージを投稿します。Google Chat API は、Message
のインスタンスを返します。
Webhook スクリプトを作成する具体的な手順については、以下から言語を選択してください。
Python
作業ディレクトリに
quickstart.py
という名前のファイルを作成します。quickstart.py
に、次のコードをコピーして貼り付けます。url
変数の値を、ステップ 1: 受信した Webhook を登録するようにコピーした Webhook URL に置き換えます。
Node.js
作業ディレクトリに
index.js
という名前のファイルを作成します。index.js
に、次のコードをコピーして貼り付けます。webhookURL
変数の値を、ステップ 1: 受信した Webhook を登録するようにコピーした Webhook URL に置き換えます。
Apps Script
Apps Script ページを開きます。
[New Project] をクリックします。
次のコードをコピーして貼り付けます。
url
変数の値を、ステップ 1: 受信した Webhook を登録するようにコピーした Webhook URL に置き換えます。
Java
作業ディレクトリに
pom.xml
という名前のファイルを作成します。pom.xml
に次の内容をコピーして貼り付けます。作業ディレクトリに、次のディレクトリ構造
src/main/java
を作成します。src/main/java
ディレクトリにApp.java
という名前のファイルを作成します。App.java
に、次のコードをコピーして貼り付けます。URL
変数の値を、ステップ 1: 受信した Webhook を登録するようにコピーした Webhook URL に置き換えます。
ステップ 3: Webhook スクリプトを実行する
CLI の作業ディレクトリから次のコマンドを実行して、サンプルを実行します。
Python
python3 quickstart.py
Node.js
node index.js
Apps Script
- [実行] をクリックします。
Java
mvn compile exec:java -Dexec.mainClass=App
サンプルコードを実行すると、Webhook は入力したスペースにメッセージを送信します。
メッセージ スレッドを開始または返信する
メッセージ スレッドを開始するか、メッセージ スレッドに返信するには、Webhook URL に threadKey
パラメータを追加します。各 threadKey
は、それを設定するアプリに固有のものです。2 つの異なる Chat アプリまたは Webhook が同じ threadKey
を設定した場合、2 つの異なるスレッドが開始されます。
メッセージ スレッドを開始する
Webhook を使用してスレッドの最初のメッセージを送信するには、Webhook URL に threadKey
パラメータと messageReplyOption
パラメータを追加します。threadKey
は任意の文字列に設定しますが、この名前は思い出してください。スレッドへの返信を投稿するには、再度これを指定する必要があります。
https://chat.googleapis.com/v1/spaces/SPACE_ID/messages?threadKey=ARBITRARY_STRING&messageReplyOption=REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD
メッセージ スレッドに返信する
既存のメッセージ スレッドにメッセージを送信するには、スレッドの開始に使用する値に設定された Webhook URL に threadKey
パラメータと messageReplyOption
パラメータを追加します。たとえば、次の URL にメッセージを送信すると、threadKey
が MY-THREAD
で、messageReplyOption
が REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD
であるスレッドに返信が投稿されます。
https://chat.googleapis.com/v1/spaces/SPACE_ID/messages?threadKey=MY-THREAD&messageReplyOption=REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD
制限事項と考慮事項
Webhook を構成する際は、次の制限と考慮事項に注意してください。
各 Webhook は、それが登録されている Chat スペースでのみ機能します。
Google Workspace Marketplace では Webhook を公開できません。
Webhook は会話ではありません。ユーザーからのメッセージや Google Chat からのイベントに返信したり、受信したりできなくなります。
ドメイン内の組織部門(OU)のみを選択してチャットアプリを有効にすると、受信 Webhook が次のエラーを返します。
{ "error": { "code": 403, "message": "The caller does not have permission", "status": "PERMISSION_DENIED" } }
着信 Webhook はダイレクト メッセージで機能しますが、すべてのユーザーがチャットアプリを有効にしている場合に限ります。
Webhook の管理はウェブブラウザからしか利用できないため、Webhook は Chat ウェブアプリから設定する必要があります。Webhook は Chat モバイルアプリでは設定できません。