Architektur einer Google Chat-App auswählen

Auf dieser Seite werden gängige Ansätze der 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, finden Sie auf dieser Seite ähnliche Informationen auf verschiedene Arten, damit Sie die für Ihren Anwendungsfall passende Architektur auswählen können:

Übersicht nach Funktionen und Möglichkeiten

In der folgenden Tabelle sind die wichtigsten Funktionen und Funktionen von Chat-Anwendungen sowie der empfohlene Dienstarchitekturstil () aufgeführt. In einigen Fällen ist es möglich, mit diesen Elementen ein anderer Architekturstil zu entwickeln, dieser ist jedoch nicht so gut für den Anwendungsfall geeignet ().

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

Muster für Mitteilungen

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.

Hinter einer Firewall kommunizieren

Google Workspace-Veranstaltungen abonnieren

Codierungs- und Bereitstellungsstile

Entwicklung ohne Code

Entwicklung mit Low-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 zum Erstellen öffentlicher Chat-Apps bietet. Diese Architektur wird für die folgenden Anwendungsfälle empfohlen:

  • Die Chat-App wird im Google Workspace Marketplace öffentlich bereitgestellt.
  • Die Chat-App 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-Anwendung erfordert eine vollständige DevOps- und CI/CD-Verwaltung.
  • Der Chat-Anwendungsdienst ist auf Cloud- oder lokalen Servern implementiert.

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

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

Im obigen Diagramm hat ein Nutzer, der mit einer HTTP Chat-Anwendung interagiert, die folgenden Informationen:

  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, das die Chat-Anwendungslogik enthält.
  3. Optional kann die Logik der Chat-Anwendung mit externen Diensten von Drittanbietern interagieren, z. B. mit einem Projektmanagementsystem oder einem Tickettool.
  4. Der Webserver sendet eine HTTP-Antwort an den Chat-Anwendungsdienst in Chat.
  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. Informationen zum Einstieg finden Sie unter Google Chat-App mit Cloud Functions erstellen.

Pub/Sub

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

  • Die Chat-App ist durch eine Firewall geschützt.
  • Die Chat-App empfängt Ereignisse zu einem Chatbereich.
  • Die Chat App ist für Ihre Organisation bereitgestellt.
  • Die Chat-App kann synchrone Nachrichten senden und empfangen sowie asynchrone Nachrichten senden.
  • Die Chat-App wird in jeder Programmiersprache entwickelt.
  • Die Chat-Anwendung 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 hat ein Nutzer, der mit einer Pub/Sub Chat-Anwendung interagiert, den folgenden Informationsfluss:

  1. Ein Nutzer sendet in Google Chat eine Nachricht an eine Chat-App, entweder in einer Direktnachricht oder in einem Chatbereich, oder ein Ereignis findet in einem Chatbereich statt, 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 eine Cloud oder ein 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.

Informationen zum Einstieg finden Sie unter Pub/Sub als Endpunkt für Ihre Chat-App verwenden.

Webhooks

Mithilfe von Aufrufen einer Webhook-URL können Sie eine Chat-App erstellen, die Nachrichten nur an einen bestimmten Chatbereich senden kann. Diese Architektur wird für die folgenden Anwendungsfälle empfohlen:

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

Bei dieser Architektur ist die Chat-App auf einen bestimmten Chatbereich beschränkt und ermöglicht keine Nutzerinteraktion, wie im folgenden Diagramm dargestellt:

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

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

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

Dieser Typ von Chat-App kann nicht in anderen Chatbereichen oder für andere Teams freigegeben und auch nicht im Google Workspace Marketplace veröffentlicht werden. Eingehende Webhooks werden für Chat-Apps empfohlen, um Benachrichtigungen oder den 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 Chat-Anwendungslogik vollständig in JavaScript erstellen. Google Apps Script ist eine Low-Code-Entwicklungsplattform für Chat-Apps. Apps Script verarbeitet den Autorisierungsvorgang und die OAuth 2.0-Tokens für die Nutzerauthentifizierung. Sie können mit Apps Script öffentliche Chat-Apps erstellen. 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-App 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-Apps, 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:

Architektur einer mit Apps Script implementierten Chat-App

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

  1. Ein Nutzer sendet eine Nachricht an eine Chat-App, entweder in einer Direktnachricht oder in einem Chatbereich.
  2. Die Nachricht wird von der Logik der Chat-Anwendung empfangen, die in Apps Script implementiert ist und sich in Google Cloud befindet.
  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 Chat-Anwendungslogik sendet eine Antwort an den Chat-App-Dienst in Chat zurück.
  5. Die Antwort wird dem Nutzer zugestellt.

Informationen zum Einstieg 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, indem Sie den automatischen Konfigurationsmodus verwenden und Vorlagen verwenden, um gängige Aktionen von Chat-Apps zu erstellen. Einige Funktionen der AppSheet-Webanwendung 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-App 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:

Architektur einer mit AppSheet implementierten Chat-App

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

  1. Ein Nutzer sendet in Google Chat eine Nachricht an eine Chat-App, entweder in einer Direktnachricht oder in einem Chatbereich.
  2. Die Nachricht wird von der Logik der Chat-Anwendung empfangen, die in AppSheet implementiert ist, das sich in Google Cloud befindet.
  3. Optional kann die Logik der Chat-Anwendung in Google Workspace-Dienste wie Apps Script oder Google Tabellen eingebunden werden.
  4. Die Chat-Anwendungslogik sendet eine Antwort an den Chat-App-Dienst 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 Platform 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:

Architektur einer mit Dialogflow implementierten Chat-App

Im obigen Diagramm hat ein Nutzer, der mit einer Dialogflow Chat-App interagiert, die folgenden Informationen:

  1. Ein Nutzer sendet in Google Chat eine Nachricht an eine Chat-App, entweder in einer Direktnachricht oder in einem Chatbereich.
  2. Ein virtueller Dialogflow-Kundenservicemitarbeiter, der sich in Google Cloud befindet, empfängt und verarbeitet die Nachricht, um eine Antwort zu generieren.
  3. Optional kann der Dialogflow-Agent mithilfe eines Dialogflow-Webhooks mit externen Drittanbieterdiensten interagieren, z. B. mit einem Projektmanagementsystem oder einem Ticketing-Tool.
  4. Der Dialogflow-Agent sendet eine Antwort an den Chat-Anwendungsdienst in Chat zurück.
  5. Die Antwort wird an den Chatbereich gesendet.

Informationen zum Einstieg finden Sie unter Google Chat-Anwendung in Dialogflow erstellen.

Befehlszeilenanwendung oder -skript

Sie können eine Befehlszeilenanwendung oder ein Skript erstellen, mit dem Nachrichten an Google Chat gesendet werden oder andere Vorgänge ausgeführt werden, 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:

Architektur einer Chat-App, die mit einer Befehlszeilenanwendung oder einem Script implementiert wurde.

Im obigen Diagramm hat die Chat-App 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.

Logische Implementierung einer Chat-App

In Chat wird die Art der Implementierung der Logik der Chat-App nicht eingeschränkt. Sie können einen Befehlsparser mit fester Syntax erstellen, erweiterte KI- und Sprachverarbeitungsbibliotheken oder -dienste verwenden, Ereignisse abonnieren und darauf reagieren oder etwas anderes, das für Ihre jeweiligen Ziele geeignet ist.

Nutzerinteraktionen verarbeiten

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

Befehlsparser

Befehlsgesteuerte Chat-Anwendungen untersuchen die Nutzlast von Interaktionsereignissen von Chat-Apps und extrahieren dann Befehle und Parameter aus diesem Inhalt. Entsprechende Informationen finden Sie beispielsweise unter Slash-Befehle für die Interaktion mit Chat-Nutzern einrichten.

Ein anderer 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, indem sie kartenbasierte Dialogfelder anzeigen, in denen 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 antworten kann, indem das Dialogfeld aktualisiert oder eine Nachricht gesendet wird.

Natural Language Processing

Viele Implementierungen von Chat-Apps verwenden Natural Language Processing (NLP), um festzustellen, wonach der Nutzer fragt. Es gibt viele Möglichkeiten, NLP zu implementieren, und Sie können NLP nach Ihren Wünschen implementieren.

Sie können NLP in der Implementierung von Chat-Apps mit Dialogflow ES oder der Dialogflow CX Chat-Integration verwenden. Dadurch 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 Chat senden, die nicht durch direkte Nutzerinteraktionen in 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-Apps interagieren.

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

Konversationsmuster

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

Anruf und Antwort (synchron)

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

Architektur einer synchronen Nachricht.

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

  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 Architektur für eine Chat-Anwendung mit einem Webdienst, Pub/Sub, Apps Script, AppSheet oder Dialogflow implementieren.

Mehrfachantworten (asynchron)

Das Muster für mehrere Antworten kann sowohl synchrone als auch asynchrone Nachrichten enthalten. Dieses Muster ist durch eine bidirektionale Kommunikation zwischen Nutzern und der Chat-App gekennzeichnet, wobei die Chat-App 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, die folgenden Informationen:

  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 eine oder mehrere asynchrone Nachrichten an den Nutzer, indem sie die REST API aufruft, z. B. „Neuer Traffic“.
  4. Der Nutzer sendet eine zusätzliche synchrone Nachricht an die Chat-App, z. B. „Traffic ignorieren“.
  5. Die Chat-Anwendung sendet eine synchrone Nachricht an den Nutzer, um die Anfrage zu bestätigen, z. B. „Monitoring aus“.

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

Ereignisse abonnieren (asynchron)

In einem asynchronen ereignisgesteuerten Muster abonniert die Chat-App Ereignisse mithilfe der Google Workspace Events API. Ereignisse stellen Änderungen an Chatressourcen dar, z. B. wenn eine neue Nachricht gepostet wird oder ein Nutzer einem Gruppenbereich beitritt. Ereignisgesteuerte Chat-Anwendungen prüfen die Ereignisnutzlast, um Daten zur geänderten Chat-Ressource zu erhalten, und reagieren entsprechend.

Mit Chat-Apps können viele Ereignistypen abonniert werden. Wenn eine Chat-App ein aktives Abo hat, sendet Chat ein Ereignis, wenn in einem Chatbereich etwas Relevantes passiert. Die Chat-App kann dann optional eine beliebige Anzahl asynchroner Antworten generieren, die sie mithilfe der Chat API an Google Chat zurücksendet.

Sie können diese Art von Logik verwenden, um externe Systeme zu aktualisieren, z. B. ein Ticket-Verwaltungssystem, oder um Nachrichten asynchron an einen Chatbereich zu senden, z. B. indem Sie eine Willkommensnachricht senden, wenn ein neuer Nutzer einem Chatbereich beitritt.

Das folgende Diagramm zeigt das ereignisgesteuerte Unterhaltungsmuster:

Architektur einer ereignisgesteuerten Nachricht

Im obigen Diagramm hat 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 darüber, was sich in der Ressource geändert hat.
  4. Die Chat-App verarbeitet die Pub/Sub-Nachricht, die das Ereignis enthält, und ergreift gegebenenfalls Maßnahmen.

Für diese Art von Unterhaltungsmuster können Sie eine Architektur für eine Chat-Anwendung mit Pub/Sub, einem Webdienst oder Apps Script implementieren.

Weitere Informationen zum Empfangen und Beantworten von Ereignissen finden Sie unter Mit Ereignissen aus Google Chat-Ereignissen arbeiten.

Einwegnachrichten aus einer Chat-App

Mit einer einseitigen Nachricht aus einem Muster einer Chat-Anwendung kann eine Chat-Anwendung 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 Alarmmeldungen nützlich sein, wie im folgenden Diagramm gezeigt:

Architektur einer Einwegnachricht.

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

  • 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-Überlaufwarnung“.
  • Optional sendet die Chat-Anwendung zusätzliche asynchrone Nachrichten.

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

Einwegnachricht an eine Chat-App

Mit einer einseitigen Nachricht an ein Chat-App-Muster kann ein Nutzer 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, weshalb wir dringend von diesem Muster abraten.