Architektur einer Google Chat-App auswählen

Auf dieser Seite werden gängige Ansätze für die Dienstarchitektur beschrieben, die zum Erstellen von Google Chat-Anwendungen verwendet werden. Wenn Sie eine vorhandene App in Google Chat einbinden möchten, können Sie Ihre vorhandene Implementierung verwenden oder anpassen. Wenn Sie eine neue Chat-App erstellen, werden auf dieser Seite ähnliche Informationen auf verschiedene Arten angezeigt, damit Sie die für Ihren Anwendungsfall passende Architektur auswählen können:

Übersicht nach Funktionen

In der folgenden Tabelle sind die wichtigsten Features und Funktionen von Chat-Anwendungen sowie der empfohlene Dienstarchitekturstil () aufgeführt. In einigen Fällen kann mit diesen Features ein anderer Architekturstil entwickelt werden, der für den Anwendungsfall jedoch nicht so gut geeignet ist wie andere Stile ().

Funktionen

Web- oder HTTP-Dienst

Pub/Sub

Webhooks

Apps Script

AppSheet

Dialogflow

Script

Gewünschte Zielgruppe

Dein Team

Meine Organisation

Die Öffentlichkeit

Nutzerinteraktivität

Natural Language Processing verwenden

Nachrichtenmuster

Synchrone Nachrichten senden und empfangen

Synchrone Nachrichten senden und empfangen sowie asynchrone Nachrichten senden

Nur asynchrone Nachrichten senden

Nachrichten von einem externen System an einen einzelnen Chatbereich senden

Auf andere Dienste und Systeme zugreifen

Integrieren Sie andere Google-Services.

Kommunikation hinter einer Firewall

Google Workspace-Veranstaltungen abonnieren

Coding- und Deployment-Stile

Entwicklung ohne Code

Entwicklung mit wenig Code

Entwicklung in einer Programmiersprache Ihrer Wahl

Vereinfachte DevOps

Vollständige DevOps- und CI/CD-Verwaltung

Dienstarchitekturstile

In diesem Abschnitt werden einige der gängigsten Architekturansätze zum Erstellen von Chat-Anwendungen beschrieben.

Web- oder HTTP-Dienst

Ein Web- oder HTTP-Dienst ist die am häufigsten bereitgestellte Architektur, da er Entwicklern die größte Flexibilität bietet, um öffentliche Chat-Anwendungen zu erstellen. Diese Architektur wird für die folgenden Anwendungsfälle empfohlen:

  • Die Chat-App wird im Google Workspace Marketplace öffentlich bereitgestellt.
  • Die Chat-Anwendung kann alle Nachrichtenmuster senden und empfangen: synchrone Nachrichten senden und empfangen, asynchrone Nachrichten senden und Nachrichten von einem externen System senden.
  • Die Chat-App wird in jeder Programmiersprache entwickelt.
  • Die Chat-App erfordert eine vollständige DevOps- und CI/CD-Verwaltung.
  • Der Chat-Anwendungsdienst ist auf Cloud- oder lokalen Servern implementiert.

In diesem Design konfigurieren Sie Google Chat für die Einbindung in einen Remote-Dienst mithilfe von HTTP, wie im folgenden Diagramm dargestellt:

Architektur einer Chat-Anwendung mit einem Webdienst auf einem lokalen Server.

Im obigen Diagramm verfügt ein Nutzer, der mit einer HTTP Chat-Anwendung interagiert, über den folgenden Informationsfluss:

  1. Ein Nutzer sendet eine Nachricht in einem Chatbereich an eine Chat-App.
  2. Eine HTTP-Anfrage wird an einen Webserver gesendet, der entweder ein Cloud- oder lokales System ist, der die Chat-Anwendungslogik enthält.
  3. Optional kann die Logik der Chat-Anwendung mit externen Diensten von Drittanbietern wie einem Projektmanagementsystem oder einem Tickettool interagieren.
  4. Der Webserver sendet eine HTTP-Antwort an den Dienst der Chat-Anwendung in Chat zurück.
  5. Die Antwort wird dem Nutzer zugestellt.
  6. Optional kann die Chat-Anwendung die Chat API aufrufen, um asynchron Nachrichten zu senden oder andere Vorgänge auszuführen.

Diese Architektur bietet Ihnen die Flexibilität, vorhandene Bibliotheken und Komponenten zu verwenden, die bereits in Ihrem System vorhanden sind, da diese Chat-Anwendungen mit verschiedenen Programmiersprachen entworfen werden können. Es gibt verschiedene Möglichkeiten, diese Architektur zu implementieren. In Google Cloud können Sie Cloud Functions, Cloud Run und App Engine verwenden. Eine Einführung finden Sie unter Google Chat-Anwendung mit Cloud Functions erstellen.

Pub/Sub

Wenn die Chat-App hinter einer Firewall implementiert ist, kann Chat keine HTTP-Aufrufe an sie senden. Ein Ansatz besteht darin, mit Pub/Sub der Implementierung der Chat-Anwendung das Abonnieren eines Themas zu ermöglichen, das Nachrichten von Chat enthält. Pub/Sub ist ein asynchroner Nachrichtendienst, der Dienste, die Nachrichten erzeugen, von Diensten entkoppelt, die diese Nachrichten verarbeiten. Diese Architektur wird für die folgenden Anwendungsfälle empfohlen:

  • Die Google Chat App ist durch eine Firewall geschützt.
  • Die Chat-App empfängt Ereignisse zu einem Chatbereich.
  • Die Chat App wurde in Ihrer Organisation bereitgestellt.
  • Die Chat-Anwendung kann synchrone Nachrichten senden und empfangen sowie asynchrone Nachrichten senden.
  • Die Chat-App wird in jeder Programmiersprache entwickelt.
  • Die Chat-App erfordert eine vollständige DevOps- und CI/CD-Verwaltung.

Das folgende Diagramm zeigt die Architektur einer Chat-App, die mit Pub/Sub erstellt wurde:

Architektur einer mit Pub/Sub implementierten Chat-App

Im obigen Diagramm sieht ein Nutzer, der mit einer Pub/Sub Chat-Anwendung interagiert, den folgenden Informationsfluss:

  1. Ein Nutzer sendet eine Nachricht in Chat an eine Chat-App, entweder in einer Direktnachricht oder in einem Chatbereich, oder ein Ereignis tritt in einem Chatbereich auf, für den die Chat-App ein aktives Abo hat.

  2. Chat sendet die Nachricht an ein Pub/Sub-Thema.

  3. Ein Anwendungsserver, bei dem es sich entweder um ein Cloud- oder lokales System handelt, das die Logik der Chat-Anwendung enthält, abonniert das Pub/Sub-Thema, um die Nachricht über die Firewall zu empfangen.

  4. Optional kann die Chat-Anwendung die Chat API aufrufen, um asynchron Nachrichten zu senden oder andere Vorgänge auszuführen.

Eine Einführung finden Sie unter Pub/Sub als Endpunkt für Ihre Chat-App verwenden.

Webhooks

Sie können eine Chat-App erstellen, die Nachrichten nur an einen bestimmten Chatbereich senden kann. Dazu müssen Sie eine Webhook-URL für Google Chat aufrufen. Diese Architektur wird für die folgenden Anwendungsfälle empfohlen:

  • Die Chat App wird für Ihr Team bereitgestellt.
  • Die Chat-Anwendung sendet Nachrichten von einem externen System an einen einzelnen Chatbereich.

Bei dieser Architektur ist die Chat-Anwendung auf einen bestimmten Chatbereich beschränkt und lässt keine Nutzerinteraktionen zu, wie im folgenden Diagramm dargestellt:

Architektur für eingehende Webhooks zum Senden asynchroner Nachrichten an Google Chat

Im obigen Diagramm hat eine Chat-Anwendung den folgenden Informationsfluss:

  1. Die Logik der Chat-Anwendung empfängt Informationen von externen Diensten von Drittanbietern, z. B. von einem Projektmanagementsystem oder einem Tickettool.
  2. Die Logik der Chat-Anwendung wird entweder in einem Cloud- oder lokalen System gehostet, der Nachrichten über eine Webhook-URL an einen bestimmten Chatbereich senden kann.
  3. Nutzer können in diesem Chatbereich Nachrichten von der Chat-App empfangen, aber nicht mit der Chat-App interagieren.

Diese Art von Chat-App kann nicht in anderen Chatbereichen oder für andere Teams und nicht im Google Workspace Marketplace veröffentlicht werden. Eingehende Webhooks werden für Chat-Apps empfohlen, um Benachrichtigungen oder Status zu melden, oder für bestimmte Arten des Prototyping von Chat-Apps.

Informationen zum Einstieg finden Sie unter Nachrichten mit Webhooks an Google Chat senden.

Apps Script

Sie können die Logik Ihrer Chat-App vollständig in JavaScript erstellen. Google Apps Script ist eine Low-Code-Entwicklungsplattform für Chat-Apps. Apps Script übernimmt den Autorisierungsvorgang und die OAuth 2.0-Tokens für die Nutzerauthentifizierung. Sie können Apps Script zum Erstellen öffentlicher Chat-Apps verwenden. Dies wird jedoch aufgrund von täglichen Kontingenten und Limits nicht empfohlen.

Diese Architektur wird für die folgenden Anwendungsfälle empfohlen:

  • Die Chat-App wird für Ihr Team oder Ihre Organisation bereitgestellt.
  • Die Chat-Anwendung kann alle Nachrichtenmuster senden und empfangen: synchrone Nachrichten senden und empfangen, asynchrone Nachrichten senden und Nachrichten von einem externen System senden.
  • Die Chat-App erfordert eine vereinfachte DevOps-Verwaltung.

Diese Architektur ist nützlich für Chat-Anwendungen, die auch in andere Google Workspace- und Google-Dienste eingebunden werden können, z. B. Google Tabellen, Google Präsentationen, Google Kalender, Google Drive, Google Maps und YouTube, wie im folgenden Diagramm dargestellt:

Grafik: Architektur einer mit Apps Script implementierten Chat-App

Im obigen Diagramm sieht ein Nutzer, der mit einer Apps Script-Chat-App interagiert, folgende Informationen:

  1. Ein Nutzer sendet eine Nachricht an eine Chat-App, entweder in einer Direktnachricht oder in einem Chatbereich.
  2. Die Logik der Chat-Anwendung, die in Apps Script implementiert ist und sich in Google Cloud befindet, empfängt die Nachricht.
  3. Optional kann die Chat-Anwendungslogik in Google Workspace-Dienste wie Google Kalender oder Google Tabellen oder andere Google-Dienste wie Google Maps oder YouTube eingebunden werden.
  4. Die Logik der Chat-Anwendung sendet eine Antwort an den Chat-Anwendungsdienst in Chat zurück.
  5. Die Antwort wird dem Nutzer zugestellt.

Weitere Informationen finden Sie unter Chat-App mit Apps Script erstellen.

AppSheet

Mit AppSheet können Sie eine in einer Domain freigegebene Chat-App ohne Code erstellen. Sie können den Entwicklungsprozess vereinfachen, wenn Sie den automatischen Konfigurationsmodus und folgende Vorlagen verwenden, um gängige Aktionen für Chat-Anwendungen zu erstellen. Einige Funktionen von AppSheet-Webanwendungen sind in Chat-Apps jedoch nicht verfügbar.

Diese Architektur wird für die folgenden Anwendungsfälle empfohlen:

  • Die Chat App wird für Sie und Ihr Team bereitgestellt.
  • Die Chat-Anwendung kann synchrone Nachrichten senden und empfangen sowie asynchrone Nachrichten senden.
  • Die Chat-App erfordert eine vereinfachte DevOps-Verwaltung.

Das folgende Diagramm zeigt die Architektur einer mit AppSheet erstellten Chat-App:

Grafik: Architektur einer mit AppSheet implementierten Chat-App

Im obigen Diagramm sieht ein Nutzer, der mit einer AppSheet-App in Chat interagiert, die folgenden Informationen:

  1. Ein Nutzer sendet eine Nachricht in Google Chat an eine Chat-Anwendung, entweder in einer Direktnachricht oder in einem Chatbereich.
  2. Die Logik der Chat-Anwendung, die in AppSheet in Google Cloud implementiert ist, empfängt die Nachricht.
  3. Optional kann die Logik der Chat-Anwendung in Google Workspace-Dienste wie Apps Script oder Google Tabellen eingebunden werden.
  4. Die Logik der Chat-Anwendung sendet eine Antwort an den Chat-Anwendungsdienst in Chat zurück.
  5. Die Antwort wird dem Nutzer zugestellt.

Informationen zum Einstieg finden Sie unter Chat-App mit AppSheet erstellen.

Dialogflow

Sie können eine Chat-App mit Dialogflow erstellen, einer Natural Language-Plattform für automatisierte Unterhaltungen und dynamische Antworten. Diese Architektur wird für die folgenden Anwendungsfälle empfohlen:

  • Die Chat-App kann synchrone Nachrichten senden und empfangen.
  • Die Chat-App verwendet Natural Language Processing, um mit Nutzern zu antworten und mit ihnen zu interagieren.

Das folgende Diagramm zeigt die Architektur einer mit Dialogflow erstellten Chat-App:

Grafik: Architektur einer mit Dialogflow implementierten Chat-App

Im obigen Diagramm verfügt ein Nutzer, der mit einer Dialogflow Chat-App interagiert, über den folgenden Informationsfluss:

  1. Ein Nutzer sendet eine Nachricht in Google Chat an eine Chat-Anwendung, entweder in einer Direktnachricht oder in einem Chatbereich.
  2. Ein virtueller Dialogflow-Agent, der sich in Google Cloud befindet, empfängt und verarbeitet die Nachricht, um eine Antwort zu erstellen.
  3. Optional kann die Logik der Chat-Anwendung mit externen Diensten von Drittanbietern wie einem Projektmanagementsystem oder einem Tickettool interagieren.
  4. Der Dialogflow-Agent sendet eine Antwort an den Chat-App-Dienst in Chat zurück.
  5. Die Antwort wird dem Nutzer zugestellt.

Eine Einführung finden Sie unter Integration von Dialogflow ES-Chat oder Dialogflow CX-Chatintegration.

Befehlszeilenanwendung oder -skript

Sie können eine Befehlszeile oder ein Skript erstellen, das Nachrichten an Google Chat sendet oder andere Vorgänge ausführt, z. B. das Erstellen eines Gruppenbereichs oder das Verwalten der Mitglieder eines Gruppenbereichs, ohne dass Nutzer die Chat-App in Chat direkt aufrufen oder beantworten können. Diese Architektur wird für die folgenden Anwendungsfälle empfohlen:

  • Die Chat-App wird in jeder Programmiersprache entwickelt.
  • Die Chat-App kann nur asynchrone Nachrichten senden.

Im folgenden Diagramm wird diese Architektur dargestellt:

Grafik: Architektur einer Chat-App, die mit einer Befehlszeilenanwendung oder einem Skript implementiert wurde.

Im obigen Diagramm verfügt die Chat-Anwendung über den folgenden Informationsfluss:

  1. Die Chat-App ruft die Chat API auf, um eine Nachricht zu senden oder einen anderen Vorgang auszuführen.
  2. Chat führt den angeforderten Vorgang aus.
  3. Optional gibt die Chat-Anwendung eine Bestätigung in der Befehlszeile aus.

Implementierung der Chat-App-Logik

In Chat wird die Implementierung der Logik der Chat-Anwendung nicht eingeschränkt. Sie können einen Befehlsparser mit fester Syntax erstellen, erweiterte KI- und Sprachverarbeitungsbibliotheken oder -dienste verwenden, Ereignisse abonnieren und auf Ereignisse reagieren oder alles andere, was für Ihre jeweiligen Ziele geeignet ist.

Nutzerinteraktionen verarbeiten

Eine Chat-App kann auf verschiedene Arten Nutzerinteraktionen empfangen und beantworten. Eine Nutzerinteraktion ist jede Aktion, die ein Nutzer ausführt, um eine Chat-App aufzurufen oder mit ihr zu interagieren.

Befehlsparser

Befehlsgesteuerte Chat-Apps prüfen die Nutzlast von Interaktionsereignissen von Chat-Apps und extrahieren dann Befehle und Parameter aus diesem Inhalt. Ein Beispiel finden Sie unter Slash-Befehle für die Interaktion mit Google Chat-Nutzern einrichten.

Ein weiterer Ansatz besteht darin, die Nachricht zu tokenisieren, den Befehl zu extrahieren und dann auf ein Wörterbuch zu verweisen, das Befehle Handler-Funktionen für jeden Befehl zuordnet.

Dialogbasierte Benutzeroberfläche

Dialogbasierte Anwendungen reagieren auf Interaktionsereignisse von Chat-Apps mit kartenbasierten Dialogfeldern, über die der Nutzer mit der Chat-App interagieren kann, z. B. Formulare ausfüllen oder Aktionen anfordern.

Jedes Mal, wenn der Nutzer eine Aktion in einem Dialogfeld ausführt, wird ein neues Interaktionsereignis an die Chat-App gesendet, das durch Aktualisieren des Dialogfelds oder Senden einer Nachricht reagieren kann.

Natural Language Processing

Viele Implementierungen von Chat-Anwendungen verwenden Natural Language Processing (NLP), um zu ermitteln, wonach der Nutzer fragt. Es gibt viele Möglichkeiten, NLP zu implementieren, und Sie können NLP beliebig implementieren.

Sie können NLP in der Implementierung einer Chat-App mit Dialogflow ES oder der Chat-Integration in Dialogflow CX verwenden. Damit können Sie virtuelle Kundenservicemitarbeiter für automatisierte Unterhaltungen und dynamische Antworten erstellen.

Proaktiv Anfragen an Google Chat senden

Chat-Apps können auch Nachrichten oder andere Anfragen an Google Chat senden, die nicht durch direkte Nutzerinteraktionen in Google Chat ausgelöst werden. Stattdessen können diese Chat-Anwendungen ausgelöst werden, z. B. durch Anwendungen von Drittanbietern oder über einen Befehlszeilenaufruf von einem Nutzer. Nutzer können jedoch nicht direkt in Chat mit diesen Chat-Anwendungen interagieren.

Nicht interaktive Chat-Apps verwenden die Chat API, um Nachrichten oder andere Arten von Anfragen an Google Chat zu senden.

Konversationsmuster

Sie sollten sich überlegen, wie die Chat-App mit Nutzern interagieren soll. In den folgenden Abschnitten werden Unterhaltungsmuster beschrieben, die in Ihrer Chat-App implementiert werden können.

Anruf und Antwort (synchron)

In einem synchronen Aufruf- und Antwortmuster antwortet die Chat-Anwendung 1:1 auf Nachrichten von Nutzern. Eine Nachricht eines Nutzers an die Chat-Anwendung führt zu einer Antwort von der Chat-Anwendung, wie im folgenden Diagramm dargestellt:

Architektur einer synchronen Nachricht.

Im obigen Diagramm hat ein Nutzer, der mit einer Chat-App interagiert, den folgenden Informationsfluss:

  1. Ein Nutzer sendet eine synchrone Nachricht an eine Chat-App, z. B. „Was ist meine nächste Besprechung?“.
  2. Die Chat-Anwendung sendet eine synchrone Nachricht an den Nutzer, z. B. „Dr. Silva um 2:30“.

Für diese Art von Konversationsmuster können Sie eine Chat-Anwendungsarchitektur mit einem Webdienst, Pub/Sub, Apps Script, AppSheet oder Dialogflow implementieren.

Mehrere Antworten (asynchron)

Das Muster für mehrere Antworten kann sowohl synchrone als auch asynchrone Nachrichten enthalten. Dieses Muster wird durch die bidirektionale Kommunikation zwischen Nutzern und der Chat-Anwendung gekennzeichnet, wobei die Chat-Anwendung eine beliebige Anzahl zusätzlicher Nachrichten generiert, wie im folgenden Diagramm dargestellt:

Architektur einer asynchronen Nachricht.

Im obigen Diagramm hat ein Nutzer, der mit einer Chat-App interagiert, den folgenden Informationsfluss:

  1. Ein Nutzer sendet eine synchrone Nachricht an eine Chat-Anwendung, z. B. „Traffic überwachen“.
  2. Die Chat-Anwendung sendet eine synchrone Nachricht an den Nutzer, um die Anfrage zu bestätigen, z. B. „Monitoring an“.
  3. Später sendet die Chat-Anwendung durch Aufrufen der REST API eine oder mehrere asynchrone Nachrichten an den Nutzer, z. B. „Neuer Traffic“.
  4. Der Nutzer sendet eine zusätzliche synchrone Nachricht an die Chat-Anwendung, z. B. „Traffic ignorieren“.
  5. Die Chat-Anwendung sendet eine synchrone Nachricht an den Nutzer, um die Anfrage zu bestätigen, z. B. „Monitoring deaktiviert“.

Für diese Art von Konversationsmuster können Sie eine Chat-Anwendungsarchitektur mit einem Webdienst, Pub/Sub, Apps Script oder AppSheet implementieren.

Termine abonnieren (asynchron)

In einem asynchronen ereignisgesteuerten Muster abonniert die Chat-App Ereignisse über die Google Workspace Events API. Ereignisgesteuerte Chat-Apps prüfen die Nutzlast von Chat-Abo-Ereignissen und reagieren entsprechend dem Ereignistyp. Wenn ein Ereignis in einem Chatbereich eintritt, für den die Chat-App ein aktives Abo hat, sendet Chat das Ereignis an die Chat-Anwendung. Die Chat-App kann dann optional eine beliebige Anzahl asynchroner Antworten generieren, die sie über die Chat API an Chat zurücksendet.

Sie können diese Art von Logik verwenden, um externe Systeme zu aktualisieren, z. B. ein Ticketverwaltungssystem, oder um Nachrichten asynchron an einen Chatbereich zu senden, z. B. indem Sie eine Begrüßungsnachricht senden, wenn ein neuer Nutzer einem Chatbereich beitritt.

Das folgende Diagramm zeigt das ereignisgesteuerte Unterhaltungsmuster:

Architektur einer ereignisgesteuerten Nachricht.

Im obigen Diagramm umfasst die Interaktion zwischen Google Chat und der Chat-App den folgenden Informationsfluss:

  1. Die Chat App abonniert einen Google Chat-Bereich.
  2. Der Bereich, den die Chat-App abonniert hat, ändert sich.
  3. Die Chat-App sendet ein Ereignis an ein Thema in Pub/Sub, das als Benachrichtigungsendpunkt für das Abo dient. Das Ereignis enthält Daten zu den Änderungen in der Ressource.
  4. Die Chat-App verarbeitet die Pub/Sub-Nachricht, die das Ereignis enthält, und ergreift gegebenenfalls Maßnahmen.

Für diese Art von Konversationsmuster können Sie eine Chat-Anwendungsarchitektur mit Pub/Sub implementieren.

Einseitige Nachrichten über eine Google Chat-App

Mit einer einseitigen Nachricht aus einem Chat-Anwendungsmuster kann eine Chat-App asynchrone Nachrichten an einen Chatbereich senden. Nutzer können jedoch nicht direkt mit der Chat-App interagieren. Dieses Muster ist nicht dialogorientiert oder interaktiv, kann aber z. B. für die Meldung von Alarmen nützlich sein, wie im folgenden Diagramm gezeigt:

Architektur einer Einwegnachricht.

Im obigen Diagramm hat ein Nutzer im selben Bereich wie die Chat-App den folgenden Informationsfluss:

  • Die Chat-App sendet eine asynchrone Nachricht an den Nutzer, indem sie die Chat API aufruft oder an eine Webhook-URL sendet, z. B. „Warteschlangenüberlauf-Warnung“.
  • Optional sendet die Chat-Anwendung zusätzliche asynchrone Nachrichten.

Für diese Art von Konversationsmuster können Sie eine Chat-Anwendungsarchitektur mit einem Webdienst, einem Webhook, Apps Script, AppSheet, einer Befehlszeilenanwendung oder einem Skript implementieren.

Einseitige Nachrichten an eine Chat-App

Bei einer einseitigen Nachricht an ein Chat-App-Muster kann ein Nutzer Nachrichten an eine Chat-App senden, ohne dass die Chat-App antwortet, während die Anfrage weiter verarbeitet wird. Diese Architektur ist zwar technisch möglich, führt aber zu einer schlechten Nutzererfahrung und wir raten dringend von diesem Muster ab.