Choisir une architecture d'application Google Chat

Cette page décrit les approches courantes d'architecture de service utilisées pour créer des applications Google Chat. Si vous souhaitez une application existante intégrer à Google Chat, vous pouvez utiliser ou adapter votre implémentation existante. Si vous créez une application Chat, cette page présente des informations similaires de différentes manières pour vous aider à choisir l'architecture adapté à votre cas d'utilisation:

Présentation par fonctionnalités et capacités

Le tableau suivant présente les principales fonctionnalités et capacités Les applications de chat et les applications () le style d'architecture du service. Dans certains cas, il est possible de développer un autre style d'architecture ces fonctionnalités, mais il n'est pas adapté au cas d'utilisation styles ().

Fonctionnalités et caractéristiques

Service Web ou HTTP

Pub/Sub

Webhooks

Apps Script

AppSheet

Dialogflow

Script

Audience visée

Votre équipe

Votre entreprise

Le public

Interactivité des utilisateurs

Utiliser le traitement du langage naturel

Schémas de communication

Envoyer et recevoir des messages synchrones

Envoyer et recevoir des messages synchrones, et envoyer des messages asynchrones

Envoyer uniquement des messages asynchrones

Envoyer des messages depuis un système externe vers un seul espace Chat

Accéder à d'autres services et systèmes

Intégration dans d'autres services Google

Communiquer derrière un pare-feu

Interroger des événements Chat ou s'y abonner

Styles de codage et de déploiement

Développement sans code

Développement avec peu de code

Développement dans le langage de programmation de votre choix

DevOps simplifié

Gestion complète du DevOps et de la CI/CD

Styles d'architecture des services

Cette section décrit certaines des approches architecturales les plus courantes utilisées pour créer des applications Chat.

Service Web ou HTTP

Un service Web ou HTTP est l'architecture la plus couramment déployée, car il offre aux développeurs la plus grande flexibilité pour créer des applications Applications de chat Cette architecture est recommandée pour cas d'utilisation:

  • L'application Chat est déployée publiquement sur Google Workspace Marketplace.
  • L'application Chat peut envoyer et recevoir tous les messages modèles: envoyer et recevoir des messages synchrones, envoyer et recevoir des messages et d'envoyer des messages depuis un système externe.
  • L'application Chat est développée dans n'importe quelle langue.
  • L'application Chat nécessite des approches DevOps et CI/CD complètes gestion de la sécurité.
  • Le service de l'application Chat est implémenté dans le cloud serveurs sur site.

Dans cette conception, vous configurez Chat pour qu'il s'intègre service distant à l'aide de HTTP, comme illustré dans le schéma suivant:

Architecture d'une application Chat utilisant un service Web sur un serveur sur site.

Dans le schéma précédent, un utilisateur interagissant avec un serveur L'application Chat comporte le flux d'informations suivant:

  1. Un utilisateur envoie un message d'un espace Chat à Application Chat
  2. Une requête HTTP est envoyée à un serveur Web qui est un cloud ou système sur site contenant l'application Chat logique.
  3. La logique de l'application Chat peut éventuellement interagir avec des services tiers externes, tels qu'un système de gestion de projets ou un outil de billetterie.
  4. Le serveur Web renvoie une réponse HTTP au Service d'application Chat dans Chat
  5. La réponse est envoyée à l'utilisateur.
  6. L'application Chat peut éventuellement appeler la fonction l'API Chat pour publier des messages de manière asynchrone ou effectuer d'autres opérations.

Cette architecture vous offre la flexibilité d'utiliser des bibliothèques et qui existent déjà dans votre système, Les applications de chat peuvent être conçues à l'aide de différents langages de programmation. Il existe différentes manières d'implémenter cette architecture. Sur Google Cloud, Cloud Functions, Cloud Run et App Engine. Pour commencer, consultez Créer une application Google Chat

Pub/Sub

Si l'application Chat est implémentée derrière un pare-feu, Chat ne peut pas passer d'appels HTTP à cette adresse. Une approche consiste à utiliser Pub/Sub pour activer l'implémentation de l'application Chat pour s'abonner à un qui regroupe les messages de Chat. Pub/Sub est une plate-forme asynchrone service de messagerie qui dissocie les services qui génèrent des messages des services qui traite ces messages. Cette architecture est recommandée pour cas d'utilisation:

  • L'application Chat est conçue derrière un pare-feu.
  • Application Chat reçoit des événements concernant un espace Chat ;
  • L'application Chat est déployée dans votre organisation.
  • L'application Chat peut envoyer et recevoir des messages et peuvent envoyer des messages asynchrones.
  • L'application Chat est développée dans n'importe quelle langue.
  • L'application Chat nécessite des approches DevOps et CI/CD complètes gestion de la sécurité.

Le schéma suivant illustre l'architecture Application de chat créée avec Pub/Sub:

Architecture d'une application Chat implémentée avec Pub/Sub.

Dans le schéma précédent, un utilisateur interagissant avec L'application Chat comporte le flux d'informations suivant:

  1. Un utilisateur envoie un message dans Chat à une Application de chat, dans un message privé ou dans une ou un événement se produit dans un espace Chat pour lesquelles l'application Chat dispose d'un abonnement.

  2. Chat envoie le message à un sujet Pub/Sub.

  3. Un serveur d'applications, c'est-à-dire un système cloud ou sur site contient la logique de l'application Chat, s'abonne au un sujet Pub/Sub pour recevoir le message via le pare-feu.

  4. L'application Chat peut éventuellement appeler la fonction l'API Chat pour publier des messages de manière asynchrone ou effectuer d'autres opérations.

Pour commencer, consultez Utilisez Pub/Sub comme point de terminaison pour votre application Chat.

Webhooks

Vous pouvez créer une application Chat qui peut uniquement envoyer des messages à un espace Chat spécifique via les appels à un chat webhook. Cette architecture est recommandée pour les cas d'utilisation suivants:

  • L'application Chat est déployée dans votre équipe.
  • L'application Chat envoie des messages depuis une adresse IP externe à un seul espace Chat.

Avec cette architecture, l'application Chat est limitée à un espace Chat spécifique et ne permet pas d'interagir avec l'utilisateur, illustré dans le schéma suivant:

Architecture des webhooks entrants pour l'envoi de messages asynchrones à Chat.

Dans le schéma précédent, une application Chat possède les éléments suivants : flux d'informations:

  1. La logique de l'application Chat reçoit des informations des services tiers externes, tels qu'un système de gestion de projets ou un outil de billetterie.
  2. La logique de l'application Chat est hébergée dans le cloud ou qui peut envoyer des messages via une URL de webhook à un espace Chat spécifique.
  3. Les utilisateurs peuvent recevoir des messages de l'application Chat dans cet espace Chat spécifique, mais ne peuvent pas interagir avec Application Chat

Ce type d'application Chat ne peut pas être partagé dans d'autres des espaces Chat ou avec d'autres équipes, et ne peut pas être publiée dans le Google Workspace Marketplace. Les webhooks entrants sont recommandés pour Applications de chat pour signaler des alertes ou des états, ou pour certains types de Prototypage d'applications de chat

Pour commencer, consultez Envoyer des messages à Chat à l'aide de webhooks

Apps Script

Vous pouvez créer la logique de votre application Chat entièrement dans JavaScript. Google Apps Script est une plate-forme de développement nécessitant peu de programmation Applications de chat Apps Script gère les le flux d'autorisation et les jetons OAuth 2.0 pour l'authentification des utilisateurs. Vous pouvez utiliser Apps Script pour créer des applications Chat publiques, mais ne l'est pas recommandé en raison de l'erreur quotidienne quotas et limites.

Cette architecture est recommandée pour les cas d'utilisation suivants:

  • L'application Chat est déployée dans votre équipe, ou votre organisation.
  • L'application Chat peut envoyer et recevoir tous les messages modèles: envoyer et recevoir des messages synchrones, envoyer et recevoir des messages et d'envoyer des messages depuis un système externe.
  • L'application Chat nécessite des opérations DevOps simplifiées gestion de la sécurité.

Cette architecture est utile pour les applications Chat qui intègrent également avec d'autres services Google Workspace et Google, comme Google Sheets, Google Slides, Google Agenda, Google Drive, Google Maps et YouTube, comme indiqué dans le le schéma suivant:

Architecture d'une application Chat implémentée avec Apps Script.

Dans le schéma précédent, un utilisateur interagissant avec un script Apps Script. L'application Chat comporte le flux d'informations suivant:

  1. Un utilisateur envoie un message à une application Chat, dans une par message privé ou dans un espace Chat.
  2. La logique de l'application Chat implémentée dans Apps Script, qui est hébergé dans Google Cloud, reçoit le message.
  3. La logique de l'application Chat peut éventuellement s'intégrer à aux services Google Workspace, comme Agenda ou Sheets ou d'autres services Google, tels que Google Maps ou YouTube.
  4. La logique de l'application Chat renvoie une réponse au Service d'application Chat dans Chat
  5. La réponse est envoyée à l'utilisateur.

Pour commencer, consultez Créer une application Chat avec Apps Script

AppSheet

Vous pouvez créer une application Chat partagée au domaine sans code à l'aide d'AppSheet. Vous pouvez simplifier le processus de développement à l'aide du mode de configuration automatique et des modèles suivants pour créer Actions de l'application Chat Cependant, certaines Les fonctionnalités de l'application Web AppSheet ne sont pas disponibles dans les applications Chat.

Cette architecture est recommandée pour les cas d'utilisation suivants:

  • L'application Chat est déployée pour vous et votre équipe.
  • L'application Chat peut envoyer et recevoir des messages et peuvent envoyer des messages asynchrones.
  • L'application Chat nécessite des opérations DevOps simplifiées gestion de la sécurité.

Le schéma suivant illustre l'architecture Application Chat créée avec AppSheet:

Architecture d'une application Chat implémentée avec AppSheet.

Dans le schéma précédent, un utilisateur interagit avec AppSheet. L'application Chat comporte le flux d'informations suivant:

  1. Un utilisateur envoie un message dans Chat à une Application de chat, dans un message privé ou dans une Espace Chat.
  2. La logique de l'application Chat implémentée dans AppSheet, qui se trouve dans Google Cloud, reçoit .
  3. La logique de l'application Chat peut éventuellement s'intégrer à services Google Workspace, comme Apps Script ou Google Sheets.
  4. La logique de l'application Chat renvoie une réponse au Service d'application Chat dans Chat
  5. La réponse est envoyée à l'utilisateur.

Pour commencer, consultez Créer une application Chat avec AppSheet

Dialogflow

Vous pouvez créer une application de chat à l'aide de Dialogflow, un plate-forme de langage naturel pour les conversations automatisées et les réponses dynamiques. Cette architecture est recommandée pour les cas d'utilisation suivants:

  • L'application Chat peut envoyer et recevoir des messages messages.
  • L'application Chat utilise le traitement du langage naturel de répondre et d'interagir avec les utilisateurs.

Le schéma suivant illustre l'architecture Application Chat créée avec Dialogflow:

Architecture d'une application Chat implémentée avec Dialogflow.

Dans le schéma précédent, un utilisateur interagissant avec un objet Dialogflow L'application Chat comporte le flux d'informations suivant:

  1. Un utilisateur envoie un message dans Chat à une Application de chat, dans un message privé ou dans une Espace Chat.
  2. Un agent virtuel Dialogflow, qui réside dans Google Cloud, reçoit et traite le message pour générer une réponse.
  3. Vous pouvez également utiliser un Webhook Dialogflow l'agent Dialogflow peut interagir avec des services tiers externes, en tant que système de gestion de projet ou outil de billetterie.
  4. L'agent Dialogflow renvoie une réponse au Service d'application Chat dans Chat
  5. La réponse est envoyée à l'espace Chat.

Pour commencer, consultez Créer une application Google Chat Dialogflow

Application ou script de ligne de commande

Vous pouvez créer une application de ligne de commande ou un script qui envoie des messages à Chat ou effectue d'autres opérations, comme créer un espace ou gérer ses membres, sans autoriser les utilisateurs directement d'appeler l'application Chat ou d'y répondre Chat. Cette architecture est recommandée pour l'utilisation suivante : cas:

  • L'application Chat est développée dans n'importe quelle langue.
  • L'application Chat ne peut envoyer que des messages asynchrones.

Le schéma suivant présente l’architecture :

Architecture d'une application Chat implémentée avec une application de ligne de commande ou un script.

Dans le schéma précédent, l'application Chat dispose des éléments suivants : flux d'informations suivant:

  1. L'application Chat appelle l'API Chat pour envoyer un ou d'effectuer une autre opération.
  2. Chat exécute l'opération demandée.
  3. Si vous le souhaitez, l'application Chat imprime une confirmation dans la CLI.

Implémentation de la logique de l'application Chat

Chat ne limite pas la façon dont vous implémentez la Logique de l'application Chat Vous pouvez créer une commande à syntaxe fixe analyseur, utiliser des bibliothèques ou des services avancés d'IA et de traitement du langage, et répondre à des événements, ou à tout autre élément approprié pour vos objectifs particuliers.

Gérer les interactions des utilisateurs

L'application Chat peut recevoir les interactions des utilisateurs et y répondre de plusieurs façons. Une interaction utilisateur est une action qu’un utilisateur entreprend pour d'appeler une application Chat ou d'interagir avec elle ;

Analyseur de commandes

Les applications Chat basées sur des commandes examinent la charge utile les événements d'interaction avec l'application Chat ; puis vous allez extraire les commandes et les paramètres de ce contenu. Par exemple, consultez Configurez des commandes à barre oblique pour interagir avec les utilisateurs de Chat.

Une autre approche consiste à tokeniser le message, à extraire la commande, référencer un dictionnaire qui mappe les commandes aux fonctions de gestionnaire pour chaque commande.

Interface utilisateur basée sur une boîte de dialogue

Les applications basées sur les boîtes de dialogue répondent aux Événements d'interaction avec l'application Chat en affichant des fiches boîtes de dialogue où l'utilisateur peut interagir avec l'application Chat, remplir des formulaires ou en demandant des actions.

Chaque fois que l'utilisateur exécute une action dans une boîte de dialogue, un nouvel événement d'interaction est envoyées à l'application Chat, qui peut y répondre en mettant à jour ou en envoyant un message.

Traitement du langage naturel

De nombreuses implémentations d'applications Chat utilisent le langage naturel de traitement des données (TLN) pour déterminer ce que demande l'utilisateur. Il existe de nombreuses façons pour implémenter le TLN, et vous pouvez choisir de l'implémenter comme vous le souhaitez.

Vous pouvez utiliser le TLN Implémentation d'une application Chat avec Dialogflow ES ou Intégration du chat Dialogflow CX qui vous permet de créer des agents virtuels pour les conversations automatisées et des réponses.

Envoyer des demandes à Chat de manière proactive

Les applications de chat peuvent également envoyer des messages ou d'autres requêtes à Chats, qui ne sont pas déclenchés par des interactions directes de l'utilisateur dans Chat. À la place, ces applications Chat peuvent être déclenchés, par exemple par des applications tierces, ou à l'aide d'une ligne de commande par un utilisateur, mais il ne peut pas interagir Applis de chat directement dans Chat.

Les applications Chat non interactives utilisent l'API Chat pour envoyer des messages ou d'autres types de requêtes à Chat.

Schémas de conversation

Vous devez réfléchir à la façon dont votre application Chat interagissent avec les utilisateurs. Les sections suivantes décrivent les modèles de conversation que votre application Chat pourrait mettre en œuvre.

Appel et réponse (synchrones)

Dans un modèle d'appel et de réponse synchrones, L'application Chat répond aux messages des utilisateurs sur une un à un. Un message envoyé par un utilisateur à l'application Chat génère une réponse de l'application Chat, comme illustré dans le schéma suivant:

Architecture d'un message synchrone.

Dans le schéma précédent, un utilisateur interagissant avec L'application Chat comporte le flux d'informations suivant:

  1. Un utilisateur envoie un message synchrone à un Application de chat, par exemple "Quelle est ma prochaine réunion ?"
  2. L'application Chat envoie un message synchrone au d'utilisateur—par exemple, « Dr. Silva à 2:30".

Pour ce type de schéma de conversation, vous pouvez implémenter un l'architecture des applications de chat à l'aide d'un service Web, Pub/Sub, Apps Script, AppSheet ou Dialogflow.

Réponses multiples (asynchrone)

Le modèle de réponses multiples peut inclure des réponses synchrones et asynchrones messages. Ce modèle est caractérisé par une communication bidirectionnelle entre les utilisateurs et l'application Chat, avec le paramètre Application de chat générant un nombre illimité de messages supplémentaires comme illustré dans le schéma suivant:

Architecture d'un message asynchrone.

Dans le schéma précédent, un utilisateur interagissant avec L'application Chat comporte le flux d'informations suivant:

  1. Un utilisateur envoie un message synchrone à un Application de chat (par exemple, "Surveiller le trafic").
  2. L'application Chat envoie un message synchrone au d'accuser réception de la requête (par exemple, "Surveillance activée").
  3. Par la suite, l'application Chat envoie une ou plusieurs requêtes asynchrones à l'utilisateur en appelant l'API REST (par exemple, "New traffic").
  4. L'utilisateur envoie un message synchrone supplémentaire Application de chat, par exemple "Ignorer le trafic".
  5. L'application Chat envoie un message synchrone au d'accuser réception de la requête (par exemple, "Surveillance désactivée").

Pour ce type de schéma de conversation, vous pouvez implémenter un l'architecture des applications de chat à l'aide d'un service Web, Pub/Sub, Apps Script ou AppSheet.

Interroger des événements ou s'y abonner (asynchrone)

Dans un modèle asynchrone basé sur des événements, l'application Chat reçoit les événements en interrogeant l'API Chat ou en créant un abonnement à un espace ou à un utilisateur Chat à l'aide de API Google Workspace Events. Les événements correspondent à des modifications apportées à Chat des ressources, par exemple lorsqu'un nouveau message est publié ou lorsqu'un utilisateur rejoint un espace. Applications Chat basées sur des événements examiner la charge utile de l'événement pour obtenir des données sur le service Chat modifié ; ressource, puis répondez en conséquence.

Les applications Chat peuvent recevoir de nombreux types d'événements, y compris des événements sur les espaces, les abonnements, les messages et les réactions. Lorsqu'un L'application Chat reçoit un événement en interrogeant la API Chat ou via un abonnement actif, le L'application de chat peut éventuellement générer un nombre illimité de asynchrones, qu'il renvoie à Chat via l'API API Chat.

Vous pouvez utiliser ce type de logique pour mettre à jour des systèmes externes, ou d'envoyer des messages à un espace Chat de manière asynchrone, par exemple en envoyant un message de bienvenue lorsqu'un nouvel utilisateur rejoint un espace Chat.

Le schéma suivant montre un exemple de conversation basée sur des événements motif:

Architecture d'un abonnement aux événements Chat

Dans le schéma précédent, l'interaction entre Chat et L'application Chat comporte le flux d'informations suivant:

  1. L'application Chat s'abonne à un espace Google Chat.
  2. Espace auquel l'application Chat est abonnée des modifications.
  3. L'application Chat envoie un événement à un sujet dans Pub/Sub, qui sert de point de terminaison de notification pour l'abonnement. La contient des données sur les modifications apportées à la ressource.
  4. L'application Chat traite les Message Pub/Sub contenant l'événement et, si nécessaire, prend des mesures.

Pour ce type de schéma de conversation, vous pouvez implémenter un l'architecture des applications de chat avec Pub/Sub, un service Web ou Apps Script.

Pour savoir comment recevoir des événements et y répondre, consultez Utiliser les événements Google Chat

Message à sens unique depuis une application Chat

Un message à sens unique issu d'un modèle d'application Chat permet à Les applications de chat envoient des messages asynchrones dans un l'espace Chat, mais ne permet pas aux utilisateurs d'interagir directement avec Application Chat Ce modèle n’est pas conversationnel ou interactives, mais elles peuvent s'avérer utiles pour les rapports d'alarme, comme le montre le schéma suivant:

Architecture d'un message à sens unique.

Dans le schéma précédent, un utilisateur se trouvant dans le même espace que L'application Chat comporte le flux d'informations suivant:

  • L'application Chat envoie un message asynchrone à l'utilisateur en appelant l'API Chat ou en publiant un message sur un webhook URL (par exemple, "Alerte de dépassement de file d'attente").
  • L'application Chat peut éventuellement envoyer des messages les messages asynchrones.

Pour ce type de schéma de conversation, vous pouvez implémenter un Architecture d'une application de chat avec un service Web, un webhook Apps Script, AppSheet, une application de ligne de commande ou un script.

Message à sens unique vers une application Chat

Un message à sens unique vers un modèle d'application Chat permet à un utilisateur envoyer un message à une application Chat Réponse de l'application Chat pendant le traitement de la requête. Bien que cette architecture soit techniquement possible, et nous vous déconseillons vivement de le faire.