Auf dieser Seite wird beschrieben, wie Sie einen Webhook einrichten, um asynchrone Nachrichten mithilfe externer Trigger in einen Chat-Bereich zu senden. Sie können beispielsweise eine Überwachungsanwendung so konfigurieren, dass sie den Bereitschaftsdienst in Google Chat benachrichtigt, wenn ein Server ausfällt. Informationen zum Senden einer synchronen Nachricht mit einer Chat-App 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 unidirektional ist. Webhooks sind nicht konversationell. Sie können nicht auf Nachrichten von Nutzern oder Ereignisse der Chat-App-Interaktion antworten oder Nachrichten von ihnen empfangen. Wenn Sie auf Nachrichten antworten möchten, erstellen Sie stattdessen eine Chat-App.
Ein Webhook ist technisch gesehen keine Chat-App. Webhooks verbinden Anwendungen über Standard-HTTP-Anfragen. Auf dieser Seite wird er jedoch zur Vereinfachung als Chat-App bezeichnet. Jeder Webhook funktioniert nur in dem Chat-Bereich, in dem er registriert ist. Eingehende Webhooks funktionieren in Direktnachrichten, aber nur, wenn alle Nutzer Chat-Apps aktiviert haben. Sie können Webhooks nicht im Google Workspace Marketplace veröffentlichen.
Das folgende Diagramm zeigt die Architektur eines mit Google Chat verbundenen Webhooks:
Im vorherigen Diagramm hat eine Chat-App den folgenden Informationsfluss:
- Die Chat-App-Logik empfängt Informationen von externen Drittanbieterdiensten wie einem Projektmanagementsystem oder einem Ticketsystem.
- Die Chat-App-Logik wird entweder in einem Cloud- oder einem lokalen System gehostet, das Nachrichten über eine Webhook-URL an einen bestimmten Chat-Bereich senden kann.
- Nutzer können in diesem bestimmten Chat-Bereich Nachrichten von der Chat-App empfangen, aber nicht mit der Chat-App interagieren.
Vorbereitung
Node.js
- Ein Google Workspace-Konto für Unternehmen oder ein Google Workspace Enterprise-Konto mit Zugriff auf Google Chat. Ihre Google Workspace-Organisation muss Nutzern das Hinzufügen und Verwenden eingehender Webhooks erlauben.
- Node.js 14 oder höher
- Das npm Paketverwaltungstool
- Ein Google Chat-Bereich. Informationen zum Erstellen eines Bereichs mit der Google Chat API finden Sie unter Bereich erstellen. Informationen zum Erstellen eines Bereichs in Google Chat finden Sie in der Hilfe. Besuchen Sie die Hilfe.
Python
- Ein Google Workspace-Konto für Unternehmen oder ein Google Workspace Enterprise-Konto mit Zugriff auf Google Chat. Ihre Google Workspace-Organisation muss Nutzern das Hinzufügen und Verwenden eingehender Webhooks erlauben.
- Python 3.6 oder höher
- Das Paketverwaltungstool pip
Die Bibliothek
httplib2. Führen Sie den folgenden Befehl in der Befehlszeilenschnittstelle aus, um die Bibliothek zu installieren:pip install httplib2Ein Google Chat-Bereich. Informationen zum Erstellen eines Bereichs mit der Google Chat API finden Sie unter Bereich erstellen. Informationen zum Erstellen eines Bereichs in Google Chat finden Sie in der Hilfe. Besuchen Sie die Hilfe.
Java
- Ein Google Workspace-Konto für Unternehmen oder ein Google Workspace Enterprise-Konto mit Zugriff auf Google Chat. Ihre Google Workspace-Organisation muss Nutzern das Hinzufügen und Verwenden eingehender Webhooks erlauben.
- Java 11 oder höher
- Das Paketverwaltungstool Maven
- Ein Google Chat-Bereich. Informationen zum Erstellen eines Bereichs mit der Google Chat API finden Sie unter Bereich erstellen. Informationen zum Erstellen eines Bereichs in Google Chat finden Sie in der Hilfe. Besuchen Sie die Hilfe.
Apps Script
- Ein Google Workspace-Konto für Unternehmen oder ein Google Workspace Enterprise-Konto mit Zugriff auf Google Chat. Ihre Google Workspace-Organisation muss Nutzern das Hinzufügen und Verwenden eingehender Webhooks erlauben.
- Erstellen Sie ein eigenständiges Apps Script-Projekt, und aktivieren Sie den erweiterten Chat-Dienst.
- Ein Google Chat-Bereich. Informationen zum Erstellen eines Bereichs mit der Google Chat API finden Sie unter Bereich erstellen. Informationen zum Erstellen eines Bereichs in Google Chat finden Sie in der Hilfe. Besuchen Sie die Hilfe.
Webhook erstellen
Wenn Sie einen Webhook erstellen möchten, registrieren Sie ihn im Chat-Bereich, 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 nicht über die mobile Chat-App konfiguriert werden.
- Rufen Sie den Bereich auf, in dem Sie einen Webhook hinzufügen möchten.
- Klicken Sie neben dem Titel des Bereichs auf den Pfeil für „Maximieren“ expand_more und dann auf Apps und Integrationen.
Klicken Sie auf „Hinzufügen“ und dann auf **Webhooks hinzufügen**.
Geben Sie im Feld Name
Quickstart Webhookein.Geben Sie im Feld Avatar-URL
https://developers.google.com/chat/images/chat-product-icon.pngein.Klicken Sie auf Speichern.
Wenn Sie die Webhook-URL kopieren möchten, klicken Sie auf Mehr und dann auf Link kopieren.
Die Webhook-URL enthält zwei Parameter:
key, ein gemeinsamer Wert für Webhooks, undtokenein eindeutiger Wert, der geheim gehalten werden muss, um die Sicherheit Ihres Webhooks zu gewährleisten.
Webhook-Skript schreiben
Das Beispiel-Webhook-Skript sendet eine Nachricht an den Bereich, in dem der Webhook registriert ist, indem eine POST-Anfrage an die Webhook-URL gesendet wird. Die
Chat API antwortet mit einer Instanz von
Message.
Wählen Sie eine Sprache aus, um zu erfahren, wie Sie ein Webhook-Skript erstellen:
Node.js
Erstellen Sie in Ihrem Arbeitsverzeichnis eine Datei mit dem Namen
index.js.Fügen Sie in
index.jsden folgenden Code ein:Ersetzen Sie den Wert für die Variable
urldurch die Webhook-URL, die Sie beim Registrieren des Webhooks kopiert haben.
Python
Erstellen Sie in Ihrem Arbeitsverzeichnis eine Datei mit dem Namen
quickstart.py.Fügen Sie in
quickstart.pyden folgenden Code ein:Ersetzen Sie den Wert für die Variable
urldurch die Webhook-URL, die Sie beim Registrieren 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.xmlein:Erstellen Sie in Ihrem Arbeitsverzeichnis die folgende Verzeichnisstruktur:
src/main/java.Erstellen Sie im Verzeichnis
src/main/javaeine Datei mit dem NamenApp.java.Fügen Sie in
App.javaden folgenden Code ein:Ersetzen Sie den Wert für die Variable
URLdurch die Webhook-URL, die Sie beim Registrieren 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
urldurch die Webhook-URL, die Sie beim Registrieren des Webhooks kopiert haben.
Webhook-Skript ausführen
Führen Sie das Skript in einer Befehlszeilenschnittstelle aus:
Node.js
node index.jsPython
python3 quickstart.pyJava
mvn compile exec:java -Dexec.mainClass=AppApps 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.
Nachrichtenthread starten oder darauf antworten
Geben Sie
spaces.messages.thread.threadKeyals Teil des Anfragetexts der Nachricht an. Je nachdem, ob Sie einen Thread starten oder darauf antworten, verwenden Sie die folgenden Werte fürthreadKey:Wenn Sie einen Thread starten, legen Sie für
threadKeyeine beliebige Zeichenfolge fest. Notieren Sie sich diesen Wert, um eine Antwort auf den Thread zu posten.Wenn Sie auf einen Thread antworten, geben Sie den
threadKeyan, der beim Starten des Threads festgelegt wurde. Wenn Sie beispielsweise eine Antwort auf den Thread posten möchten, in dem die ursprüngliche NachrichtMY-THREADverwendet hat, legen SieMY-THREADfest.
Definieren Sie das Threadverhalten, wenn der angegebene
threadKeynicht gefunden wird:Auf einen Thread antworten oder einen neuen Thread starten. Fügen Sie der Webhook-URL den Parameter
messageReplyOption=REPLY_MESSAGE_FALLBACK_TO_NEW_THREADhinzu. Wenn Sie diesen URL-Parameter übergeben, sucht Google Chat nach einem vorhandenen Thread mit dem angegebenenthreadKey. Wenn ein Thread gefunden wird, wird die Nachricht als Antwort auf diesen Thread gepostet. Wenn kein Thread gefunden wird, wird mit der Nachricht ein neuer Thread mit diesemthreadKeygestartet.Auf einen Thread antworten oder nichts tun. Fügen Sie der Webhook-URL den Parameter
messageReplyOption=REPLY_MESSAGE_OR_FAILhinzu. Wenn Sie diesen URL-Parameter übergeben, sucht Google Chat nach einem vorhandenen Thread mit dem angegebenenthreadKey. Wenn ein Thread gefunden wird, wird die Nachricht als Antwort auf diesen Thread gepostet. Wenn kein Thread gefunden wird, wird die Nachricht nicht gesendet.
Weitere Informationen finden Sie unter
messageReplyOption.
Das folgende Codebeispiel startet einen Nachrichtenthread oder antwortet darauf:
Node.js
Python
Java
Apps Script
Fehler verarbeiten
Webhook-Anfragen können aus verschiedenen Gründen fehlschlagen, z. B.:
- Ungültige Anfrage.
- Webhook oder Bereich, in dem der Webhook gehostet wird, wurde gelöscht.
- Zeitweise auftretende Probleme wie Netzwerkverbindung oder Kontingentlimits.
Beim Erstellen Ihres Webhooks sollten Sie Fehler entsprechend behandeln:
- Fehler protokollieren.
- Bei zeitbasierten Fehlern, Kontingentfehlern oder Fehlern bei der Netzwerkverbindung die Anfrage mit exponentiellem Backoff wiederholen.
- Nichts tun. Dies ist angemessen, wenn das Senden der Webhook-Nachricht nicht wichtig ist.
Die Google Chat API gibt Fehler als
google.rpc.Status,
die einen HTTP-Fehler code enthält, der den Typ des aufgetretenen Fehlers angibt: ein Clientfehler (400er-Reihe) oder ein Serverfehler (500er-Reihe). Eine Übersicht über alle HTTP-Zuordnungen finden Sie unter
google.rpc.Code.
{
"code": 503,
"message": "The service is currently unavailable.",
"status": "UNAVAILABLE"
}
Informationen zum Interpretieren von HTTP-Statuscodes und zum Beheben von Fehlern finden Sie unter Fehler.
Einschränkungen und Überlegungen
- Wenn Sie mit einem Webhook in der Google Chat API eine Nachricht erstellen, enthält die Antwort nicht die vollständige Nachricht.
In der Antwort werden nur die Felder
nameundthread.nameausgefüllt. - Für Webhooks gilt das Kontingent pro Bereich für
spaces.messages.create: 1 Anfrage pro Sekunde, aufgeteilt auf alle Webhooks im Bereich. Google Chat lehnt möglicherweise auch Webhook-Anfragen ab, die 1 Anfrage pro Sekunde im selben Bereich überschreiten. Weitere Informationen zu den Kontingenten der Chat API finden Sie unter Nutzungslimits.