Auf dieser Seite wird beschrieben, wie Sie einen Webhook einrichten, um asynchrone Nachrichten mithilfe externer Trigger an einen Chatbereich zu senden. Sie können beispielsweise eine Monitoring-Anwendung so konfigurieren, dass das Bereitschaftspersonal in Chat benachrichtigt wird, wenn ein Server ausfällt. Informationen zum Senden einer synchronen Nachricht mit einer Chat-Anwendung finden Sie unter Nachricht senden.
Bei dieser Art von Architekturdesign können Nutzer nicht mit dem Webhook oder der verbundenen externen Anwendung interagieren, da die Kommunikation in eine Richtung erfolgt. Webhooks sind nicht dialogorientiert. Sie können weder auf Nachrichten von Nutzern noch auf Interaktionsereignisse für Chat-Apps antworten oder diese empfangen. Wenn Sie Nachrichten beantworten möchten, erstellen Sie eine Chat-App anstelle eines Webhooks.
Ein Webhook ist eigentlich keine Chat-Anwendung. Webhooks verbinden Anwendungen über Standard-HTTP-Anfragen. Auf dieser Seite wird er jedoch zur Vereinfachung als Chat-App bezeichnet. Webhooks funktionieren nur in dem Chatbereich, in dem er registriert ist. Eingehende Webhooks funktionieren in Direktnachrichten, aber nur, wenn alle Nutzer Chat-Apps aktiviert haben. Sie können keine Webhooks im Google Workspace Marketplace veröffentlichen.
Das folgende Diagramm zeigt die Architektur eines Webhooks, der mit Chat verbunden ist:
Im obigen Diagramm hat eine Chat-Anwendung den folgenden Informationsfluss:
- Die Chat-Anwendungslogik empfängt Informationen von externen Diensten von Drittanbietern, z. B. von einem Projektmanagementsystem oder einem Tickettool.
- Die Chat-Anwendungslogik wird entweder in einem Cloud- oder lokalen System gehostet, das Nachrichten über eine Webhook-URL an einen bestimmten Chatbereich senden kann.
- Nutzer können in diesem Chatbereich Nachrichten von der Chat-Anwendung empfangen, aber nicht mit der Chat-App interagieren.
Voraussetzungen
Python
- Python 3.10.7 oder höher.
- Ein Google Workspace-Konto mit Zugriff auf Chat.
- Ein Google Cloud-Projekt
- Die Abrechnung für Ihr Cloud-Projekt muss aktiviert sein. Weitere Informationen zum Überprüfen des Abrechnungsstatus Ihrer Projekte
- Ein vorhandener Chatbereich.
Die
httplib2
-Bibliothek. Führen Sie gegebenenfalls den folgenden Befehlszeilenbefehl aus, um die Bibliothek mitpip
zu installieren:pip install httplib2
Node.js
- Node.js und npm installiert
- Ein Google Workspace-Konto mit Zugriff auf Chat.
- Ein Google Cloud-Projekt
- Die Abrechnung für Ihr Cloud-Projekt muss aktiviert sein. Weitere Informationen zum Überprüfen des Abrechnungsstatus Ihrer Projekte
- Ein vorhandener Chatbereich.
Java
- Java 11 oder höher.
- Apache Maven
- Ein Google Workspace-Konto mit Zugriff auf Chat.
- Ein Google Cloud-Projekt
- Die Abrechnung für Ihr Cloud-Projekt muss aktiviert sein. Weitere Informationen zum Überprüfen des Abrechnungsstatus Ihrer Projekte
- Ein vorhandener Chatbereich.
Apps Script
- Ein Google Workspace-Konto mit Zugriff auf Chat.
- Ein vorhandener Chatbereich.
Webhook erstellen
Registrieren Sie einen Webhook im Chatbereich, in dem Sie Nachrichten empfangen möchten, und schreiben Sie dann ein Skript, das Nachrichten sendet.
Eingehenden Webhook registrieren
- Öffnen Sie Chat in einem Browser. Webhooks können in der mobilen Google Chat App nicht konfiguriert werden.
- Rufen Sie den Gruppenbereich auf, dem Sie einen Webhook hinzufügen möchten.
- Klicken Sie neben dem Titel des Gruppenbereichs auf das Dreipunkt-Menü ( ) und dann auf Apps und Integrationen.
- Klicken Sie auf Webhooks hinzufügen.
- Geben Sie im Feld Name
Quickstart Webhook
ein. - Geben Sie im Feld Avatar-URL den Wert
https://developers.google.com/chat/images/chat-product-icon.png
ein. - Klicken Sie auf Speichern.
- Klicken Sie zum Kopieren der Webhook-URL auf Mehr und dann auf Link kopieren.
Webhook-Skript schreiben
Mit dem Beispiel-Webhook-Skript wird eine Nachricht an den Gruppenbereich gesendet, in dem der Webhook registriert ist. Dazu wird eine POST
-Anfrage an die Webhook-URL gesendet. Die Chat API antwortet mit einer Instanz von Message
.
Wählen Sie eine Sprache aus, um zu erfahren, wie Sie ein Webhook-Skript erstellen:
Python
Erstellen Sie in Ihrem Arbeitsverzeichnis eine Datei mit dem Namen
quickstart.py
.Fügen Sie den folgenden Code in
quickstart.py
ein:Ersetzen Sie den Wert für die Variable
WEBHOOK_URL
durch die Webhook-URL, die Sie bei der Registrierung des Webhooks kopiert haben.
Node.js
Erstellen Sie in Ihrem Arbeitsverzeichnis eine Datei mit dem Namen
index.js
.Fügen Sie den folgenden Code in
index.js
ein:Ersetzen Sie den Wert für die Variable
webhookURL
durch die Webhook-URL, die Sie bei der Registrierung des Webhooks kopiert haben.
Java
Erstellen Sie in Ihrem Arbeitsverzeichnis eine Datei mit dem Namen
pom.xml
.Kopieren Sie den folgenden Code und fügen Sie ihn in
pom.xml
ein:Erstellen Sie in Ihrem Arbeitsverzeichnis die folgende Verzeichnisstruktur
src/main/java
.Erstellen Sie im Verzeichnis
src/main/java
eine Datei mit dem NamenApp.java
.Fügen Sie den folgenden Code in
App.java
ein:Ersetzen Sie den Wert für die Variable
URL
durch die Webhook-URL, die Sie bei der Registrierung des Webhooks kopiert haben.
Apps Script
Rufen Sie in einem Browser Apps Script auf.
Klicken Sie auf Neues Projekt.
Fügen Sie den folgenden Code ein:
Ersetzen Sie den Wert für die Variable
url
durch die Webhook-URL, die Sie bei der Registrierung des Webhooks kopiert haben.
Webhook-Skript ausführen
Führen Sie das Skript in einer Befehlszeile aus:
Python
python3 quickstart.py
Node.js
node index.js
Java
mvn compile exec:java -Dexec.mainClass=App
Apps Script
- Klicken Sie auf Ausführen.
Wenn Sie den Code ausführen, sendet der Webhook eine Nachricht an den Bereich, in dem Sie ihn registriert haben.
Unterhaltung starten oder beantworten
Geben Sie
spaces.messages.thread.threadKey
als Teil des Nachrichtenanfragetextes an. Je nachdem, ob Sie einen Thread starten oder auf einen Thread antworten, verwenden Sie die folgenden Werte fürthreadKey
:Wenn Sie einen Thread starten, legen Sie für
threadKey
einen beliebigen String fest. Notieren Sie sich diesen Wert, um eine Antwort auf den Thread zu posten.Wenn Sie auf einen Thread antworten, geben Sie den
threadKey
an, der beim Start des Threads festgelegt wurde. Wenn Sie beispielsweise eine Antwort auf den Thread posten möchten, in dem die ursprüngliche NachrichtMY-THREAD
verwendet hat, legen SieMY-THREAD
fest.
Definieren Sie das Threadverhalten, wenn die angegebene
threadKey
nicht gefunden wird:Sie können auf einen Thread antworten oder einen neuen Thread starten. Fügen Sie der Webhook-URL den Parameter
messageReplyOption=REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD
hinzu. Wenn dieser URL-Parameter übergeben wird, sucht Google Chat mit dem angegebenenthreadKey
nach einem vorhandenen Thread. Wird eine gefunden, wird die Nachricht als Antwort auf diesen Thread gepostet. Wird keiner gefunden, startet die Nachricht einen neuen Thread, der diesemthreadKey
entspricht.Auf einen Thread antworten oder nichts unternehmen Fügen Sie der Webhook-URL den Parameter
messageReplyOption=REPLY_MESSAGE_OR_FAIL
hinzu. Wenn dieser URL-Parameter übergeben wird, sucht Google Chat mit dem angegebenenthreadKey
nach einem vorhandenen Thread. Wird eine gefunden, wird die Nachricht als Antwort auf diesen Thread gepostet. Wird keiner gefunden, wird die Nachricht nicht gesendet.
Weitere Informationen finden Sie unter
messageReplyOption
.
Mit dem folgenden Codebeispiel wird ein Nachrichtenthread gestartet oder beantwortet: