Elige una arquitectura de app de Google Chat

En esta página, se describen los enfoques comunes de arquitectura de servicio que se usan para crear apps de Google Chat. Si tienes una app existente que quieres integrar en Google Chat, puedes usar o adaptar tu implementación existente. Si estás compilando una app de Chat nueva, en esta página se presenta información similar de diferentes maneras para ayudarte a elegir la arquitectura adecuado para tu caso de uso:

Descripción general por funciones y capacidades

La siguiente tabla destaca las funciones y capacidades clave de Chat y las apps de chat () de estilo de arquitectura de servicio. En algunos casos, se puede desarrollar otro estilo de arquitectura estas funciones, pero no se adapta tanto al caso de uso como a otras estilos ().

Características y funciones

Servicio web o HTTP

Pub/Sub

Webhooks

Apps Script

AppSheet

Dialogflow

Secuencia de comandos

Público objetivo

Tu equipo

Tu organización

Público

Interactividad del usuario

Usar procesamiento de lenguaje natural

Patrones de mensajería

Envía y recibe mensajes síncronos

Envía y recibe mensajes síncronos, y envía mensajes asíncronos

Envía solo mensajes asíncronos

Envía mensajes de un sistema externo a un solo espacio de Chat

Accede a otros servicios y sistemas

Se integran con otros servicios de Google.

Comunícate detrás de un firewall

Realiza consultas en eventos de Chat o suscríbete a ellos

Estilos de programación y de implementación

Desarrollo sin código

Desarrollo con poco código

Desarrollo en el lenguaje de programación que quieras

DevOps simplificado

Administración completa de DevOps y CI/CD

Estilos de arquitectura de servicio

En esta sección, se describen algunos de los enfoques arquitectónicos más comunes usados para crear apps de Chat.

Servicio web o HTTP

Un servicio web o HTTP es la arquitectura que se implementa con mayor frecuencia porque proporciona la mayor flexibilidad para que los desarrolladores creen Apps de Chat Esta arquitectura se recomienda para lo siguiente: en los siguientes casos de uso:

  • La app de Chat se implementa al público en Google Workspace Marketplace
  • La app de Chat puede enviar y recibir todos los mensajes patrones: enviar y recibir mensajes síncronos, enviar mensajes y enviar mensajes desde un sistema externo.
  • La app de Chat se desarrolla en cualquier entorno idioma.
  • La app de Chat requiere DevOps y CI/CD completos. y administración de posturas.
  • El servicio de la app de Chat se implementa en la nube servidores locales.

En este diseño, configurarás Chat para integrarlo en un servicio remoto mediante HTTP, como se muestra en el siguiente diagrama:

Arquitectura de una app de Chat que usa un servicio web en un servidor local

En el diagrama anterior, un usuario que interactúa con una solicitud HTTP La app de Chat tiene el siguiente flujo de información:

  1. Un usuario envía un mensaje en un espacio de Chat a una App de Chat
  2. Una solicitud HTTP se envía a un servidor web que es una nube sistema local que contiene la app de Chat lógica.
  3. De manera opcional, la lógica de la app de Chat puede interactuar servicios externos de terceros, como un sistema de gestión de proyectos o un de venta de entradas.
  4. El servidor web envía una respuesta HTTP al Servicio de la app de Chat en Chat.
  5. La respuesta se entrega al usuario.
  6. Si lo deseas, la app de Chat puede llamar al Chat para publicar mensajes de forma asíncrona o realizar otras las operaciones.

Esta arquitectura te brinda la flexibilidad de usar las bibliotecas existentes y componentes que ya existen en tu sistema porque estos Las apps de Chat se pueden diseñar con diferentes lenguajes de programación. Existen diferentes maneras de implementar esta arquitectura. En Google Cloud, puedes puede usar Cloud Functions, Cloud Run y App Engine. Para comenzar, consulta Compila una app de Google Chat.

Pub/Sub

Si la app de Chat se implementa detrás de un firewall, Chat no puede realizar llamadas HTTP a ese servicio. Un enfoque es usar Pub/Sub a Habilita la implementación de la app de Chat para suscribirte a un que incluya mensajes de Chat. Pub/Sub es un servicio de servicio de mensajería que separa los servicios que producen mensajes de los servicios procesar esos mensajes. Esta arquitectura se recomienda para lo siguiente: en los siguientes casos de uso:

  • La app de Chat se compila con un firewall.
  • La app de Chat reciben eventos sobre un espacio de Chat.
  • Se implementó la app de Chat en tu organización.
  • La app de Chat puede enviar y recibir mensajes mensajes, y puede enviar mensajes asíncronos.
  • La app de Chat se desarrolla en cualquier entorno idioma.
  • La app de Chat requiere DevOps y CI/CD completos. y administración de posturas.

En el siguiente diagrama, se muestra la arquitectura de una App de chat compilada con Pub/Sub:

Arquitectura de una app de Chat implementada con Pub/Sub

En el diagrama anterior, un usuario interactúa con una instancia La app de Chat tiene el siguiente flujo de información:

  1. Un usuario envía un mensaje en Chat a un App de Chat, ya sea en un mensaje directo o en una Un espacio de Chat o un evento en un espacio de Chat para los que la app de Chat tiene suscripción.

  2. Chat envía el mensaje a un tema de Pub/Sub.

  3. Un servidor de aplicaciones, que puede ser un sistema local o en la nube que contiene la lógica de la app de Chat, se suscribe tema de Pub/Sub para recibir el mensaje a través del firewall.

  4. Si lo deseas, la app de Chat puede llamar al Chat para publicar mensajes de forma asíncrona o realizar otras las operaciones.

Para comenzar, consulta Usa Pub/Sub como el extremo de tu app de Chat.

Webhooks

Puedes crear una app de Chat que solo pueda enviar mensajes a un espacio de Chat específico webhook. Esta arquitectura se recomienda para los siguientes casos prácticos:

  • Se implementó la app de Chat para tu equipo.
  • La app de Chat envía mensajes desde una puerta de enlace sistema a un solo espacio de Chat.

Con esta arquitectura, la app de Chat se limita a un espacio de Chat específico y no permite la interacción del usuario, ya que se muestra en el siguiente diagrama:

Arquitectura para que los webhooks entrantes envíen mensajes asíncronos a Chat.

En el diagrama anterior, una app de Chat tiene las siguientes características: flujo de información:

  1. La lógica de la app de Chat recibe información del servicios externos de terceros, como un sistema de gestión de proyectos o un de venta de entradas.
  2. La lógica de la app de Chat se aloja en un servicio que puede enviar mensajes con una URL de webhook a una un espacio de Chat específico.
  3. Los usuarios pueden recibir mensajes de la app de Chat en ese espacio de Chat específico, pero que no puedan interactuar App de Chat

Este tipo de app de Chat no se puede compartir con otras de Chat o con otros equipos, y no se pueden publicar Google Workspace Marketplace Se recomiendan los webhooks entrantes para apps de chat para informar alertas o estados, o para algunos tipos de Prototipado de la app de Chat

Para comenzar, consulta Envía mensajes a Chat con webhooks.

Apps Script

Puedes crear la lógica de tu app de Chat por completo en JavaScript: Google Apps Script es una plataforma de desarrollo con poco código para Apps de Chat Apps Script se encarga de de autorización y los tokens de OAuth 2.0 para la autenticación de usuarios. Puedes usar Apps Script para compilar apps de Chat públicas, pero no se recomienda debido a la frecuencia con que cuotas y límites.

Esta arquitectura se recomienda para los siguientes casos prácticos:

  • La app de Chat se implementa en tu equipo o tu organización.
  • La app de Chat puede enviar y recibir todos los mensajes patrones: enviar y recibir mensajes síncronos, enviar mensajes y enviar mensajes desde un sistema externo.
  • La app de Chat requiere DevOps simplificado y administración de posturas.

Esta arquitectura es útil para las apps de Chat que también se integran con otros servicios de Google Workspace y Google, como Hojas de cálculo de Google, Presentaciones de Google, Calendario de Google, Google Drive, Google Maps y YouTube, como se muestra en el siguiente diagrama:

Arquitectura de una app de Chat implementada con Apps Script

En el diagrama anterior, se muestra cómo un usuario interactúa con una secuencia de comandos de Apps Script. La app de Chat tiene el siguiente flujo de información:

  1. Un usuario envía un mensaje a una app de Chat, ya sea en un mensaje directo o en un espacio de Chat.
  2. La lógica de la app de Chat que se implementa en Apps Script, que reside en Google Cloud, recibe el mensaje.
  3. De forma opcional, la lógica de la app de Chat se puede integrar en servicios de Google Workspace, como una app de Calendario Hojas de cálculo y otros servicios de Google, como Google Maps o YouTube.
  4. La lógica de la app de Chat envía una respuesta Servicio de la app de Chat en Chat.
  5. La respuesta se entrega al usuario.

Para comenzar, consulta Compila una app de Chat con Apps Script.

AppSheet

Puedes crear una app de Chat compartida por el dominio sin código con AppSheet. Puedes simplificar el proceso de desarrollo usando el modo de configuración automática y las siguientes plantillas para compilar Acciones en la app de Chat. Sin embargo, algunos Las funciones de la app web de AppSheet no están disponibles en las apps de Chat.

Esta arquitectura se recomienda para los siguientes casos prácticos:

  • Implementaste la app de Chat para ti y tu equipo.
  • La app de Chat puede enviar y recibir mensajes mensajes, y puede enviar mensajes asíncronos.
  • La app de Chat requiere DevOps simplificado y administración de posturas.

En el siguiente diagrama, se muestra la arquitectura de una App de Chat compilada con AppSheet:

Arquitectura de una app de Chat implementada con AppSheet

En el diagrama anterior, se muestra a un usuario interactuando con una aplicación de AppSheet La app de Chat tiene el siguiente flujo de información:

  1. Un usuario envía un mensaje en Chat a un App de Chat, ya sea en un mensaje directo o en una Espacio de Chat
  2. La lógica de la app de Chat que se implementa en AppSheet, que reside en Google Cloud, recibe el mensaje.
  3. De forma opcional, la lógica de la app de Chat se puede integrar en servicios de Google Workspace, como Apps Script o Google Sheets.
  4. La lógica de la app de Chat envía una respuesta Servicio de la app de Chat en Chat.
  5. La respuesta se entrega al usuario.

Para comenzar, consulta Compila una app de Chat con AppSheet.

Dialogflow

Puedes crear una app de Chat con Dialogflow, de lenguaje natural para conversaciones automáticas y respuestas dinámicas. Esta arquitectura se recomienda para los siguientes casos prácticos:

  • La app de Chat puede enviar y recibir mensajes mensajes nuevos.
  • La app de Chat usa procesamiento de lenguaje natural responder e interactuar con los usuarios.

En el siguiente diagrama, se muestra la arquitectura de una App de Chat compilada con Dialogflow:

Arquitectura de una app de Chat implementada con Dialogflow

En el diagrama anterior, un usuario que interactúa con Dialogflow La app de Chat tiene el siguiente flujo de información:

  1. Un usuario envía un mensaje en Chat a una App de Chat, ya sea en un mensaje directo o en una Espacio de Chat
  2. Un agente virtual de Dialogflow, que reside en Google Cloud, recibe y procesa el mensaje para producir una respuesta.
  3. De manera opcional, con un Webhook de Dialogflow, el agente de Dialogflow puede interactuar con servicios externos de terceros, como como un sistema de gestión de proyectos o una herramienta de generación de tickets.
  4. El agente de Dialogflow envía una respuesta al Servicio de la app de Chat en Chat.
  5. La respuesta se entrega al espacio de Chat.

Para comenzar, consulta Compila una app de Google Chat en Dialogflow.

Secuencia de comandos o aplicación de línea de comandos

Puedes crear una aplicación de línea de comandos o una secuencia de comandos que envíe mensajes a Chat o realiza otras operaciones, como crear un espacio o administrar sus miembros, sin permitir que los usuarios invocar o responder a la app de Chat en Chat. Esta arquitectura se recomienda para los siguientes usos: casos:

  • La app de Chat se desarrolla en cualquier entorno idioma.
  • La app de Chat solo puede enviar mensajes asíncronos.

En el siguiente diagrama, se muestra la arquitectura:

Arquitectura de una app de Chat implementada con una aplicación de línea de comandos o una secuencia de comandos

En el diagrama anterior, la app de Chat tiene la el siguiente flujo de información:

  1. La app de Chat llama a la API de Chat para enviar un un mensaje o realizar otra operación.
  2. Chat ejecuta la operación solicitada.
  3. De manera opcional, la app de Chat imprime una confirmación en la CLI.

Implementación de la lógica de la app de Chat

Chat no limita la forma en que implementas Lógica de la app de Chat Puedes crear un comando de sintaxis fija analizar, usar bibliotecas o servicios avanzados de IA y procesamiento de lenguajes, suscribirse y responder a eventos o cualquier otra cosa adecuada para tus objetivos particulares.

Cómo controlar las interacciones del usuario

La app de Chat puede recibir y responder a las interacciones de los usuarios de varias maneras. Una interacción del usuario es cualquier acción que un usuario realiza para invocar una app de Chat o interactuar con ella

Analizador de comandos

Las apps de Chat basadas en comandos examinan la carga útil Eventos de interacción con la app de Chat, y, luego, extraer comandos y parámetros de este contenido. Por ejemplo, consulta Configura comandos de barra para interactuar con los usuarios de Chat.

Otro enfoque consiste en asignar un token al mensaje, extraer el comando y, luego, hacer referencia a un diccionario que asigna comandos a funciones de controlador para cada comando.

Interfaz de usuario basada en diálogos

Las apps basadas en diálogos responden a Eventos de interacción con la app de Chat mostrando diálogos donde en que el usuario puede interactuar con la app de Chat, por ejemplo, completar formularios o solicitando acciones.

Cada vez que el usuario ejecuta una acción en un diálogo, se genera un nuevo evento de interacción enviados a la app de Chat, la cual puede responder actualizando un diálogo o enviar un mensaje.

Procesamiento de lenguaje natural

Muchas implementaciones de apps de Chat usan lenguaje natural (PLN) para determinar qué está solicitando el usuario. Hay muchas maneras para implementar el PLN. También puede hacerlo de la forma que prefiera.

Puedes usar PLN en tus de la app de Chat con Dialogflow ES o la integración de Chat en Dialogflow CX, que te permite crear agentes virtuales para conversaciones automatizadas y de respuestas ante incidentes.

Envía solicitudes de forma proactiva a Chat

Las apps de Chat también pueden enviar mensajes y otras solicitudes a Chat, que no se activan por interacciones directas del usuario en Chat. En cambio, estas apps de Chat pueden ser se activa, por ejemplo, a través de aplicaciones de terceros o mediante una línea de un usuario, pero este no puede interactuar con ellas Apps de Chat directamente en Chat

Las apps no interactivas de Chat usan la API de Chat para enviar mensajes y otros tipos de solicitudes a Chat.

Patrones de conversación

Debes considerar cómo quieres que tu app de Chat interactuar con los usuarios. En las siguientes secciones, se describen los patrones de conversación que podría implementar tu app de Chat.

Llamada y respuesta (síncronas)

En un patrón de respuesta y llamada síncrona, la App de Chat responde los mensajes de los usuarios de una personal. Un mensaje de un usuario a la app de Chat genera una respuesta de la app de Chat, como se muestra el siguiente diagrama:

Arquitectura de un mensaje síncrono.

En el diagrama anterior, un usuario que interactúa con un La app de Chat tiene el siguiente flujo de información:

  1. Un usuario envía un mensaje síncrono a un App de Chat, por ejemplo, "¿Cuál es mi próxima reunión?".
  2. La app de Chat envía un mensaje síncrono al usuario, por ejemplo, "Dr. Silva a las 2:30".

Para este tipo de patrón conversacional, puedes implementar un arquitectura de apps de chat con un servicio web, Pub/Sub Apps Script, AppSheet o Dialogflow.

Respuestas múltiples (asíncrono)

El patrón de respuestas múltiples puede incluir respuestas síncronas y asíncronas mensajes nuevos. Este patrón se caracteriza por una comunicación bidireccional entre los usuarios y la app de Chat, con la una app de Chat que genere cualquier cantidad de mensajes adicionales como se muestra en el siguiente diagrama:

Arquitectura de un mensaje asíncrono

En el diagrama anterior, un usuario que interactúa con un La app de Chat tiene el siguiente flujo de información:

  1. Un usuario envía un mensaje síncrono a un app de Chat, por ejemplo, “Supervisa el tráfico”.
  2. La app de Chat envía un mensaje síncrono al que el usuario confirme la solicitud, por ejemplo, “Monitoring on”.
  3. Luego, la app de Chat envía uno o más mensajes mensajes al usuario llamando a la API de REST, por ejemplo, “Tráfico nuevo”.
  4. El usuario envía un mensaje síncrono adicional al app de Chat, por ejemplo, “Ignorar el tráfico”.
  5. La app de Chat envía un mensaje síncrono al que el usuario confirme la solicitud, por ejemplo, “Supervisión desactivada”.

Para este tipo de patrón conversacional, puedes implementar un arquitectura de apps de chat con un servicio web, Pub/Sub Apps Script o AppSheet.

Consulta eventos o suscríbete a ellos (asíncrono)

En un patrón asíncrono controlado por eventos, la app de Chat recibe eventos consultando la API de Chat o creando un a un usuario o a un espacio de Chat mediante API de Google Workspace Events. Los eventos representan cambios en Chat recursos, como cuando se publica un mensaje nuevo o cuando un usuario se une a un espacio. Apps de Chat controladas por eventos examinar la carga útil del evento para obtener datos sobre el chat modificado recurso, y luego responder según corresponda.

Las apps de Chat pueden recibir muchos tipos de eventos, incluidos eventos sobre espacios, membresías, mensajes y reacciones. Cuando un elemento Chat recibe un evento consultando al Chat o a través de una suscripción activa, el Chat puede generar cualquier cantidad de solicitudes respuestas asíncronas, que envía de vuelta a Chat usando el API de Chat.

Puedes usar este tipo de lógica para actualizar sistemas externos, como un ticket de Google Workspace o enviar mensajes a un espacio de Chat. de forma asíncrona, por ejemplo, con un mensaje de bienvenida cuando se une un usuario nuevo. un espacio de Chat.

En el siguiente diagrama, se muestra un ejemplo de una conversación controlada por eventos diseño:

Arquitectura de una suscripción a eventos de Chat

En el diagrama anterior, la interacción entre Chat y La app de Chat tiene el siguiente flujo de información:

  1. La app de Chat se suscribe a un espacio de Google Chat.
  2. El espacio al que está suscrita la app de Chat cambios.
  3. La app de Chat publica un evento en un tema en Pub/Sub, que funciona como el extremo de notificación de la suscripción. El contiene datos sobre los cambios en el recurso.
  4. La app de Chat procesa las Mensaje de Pub/Sub que contiene el evento y, si es necesario, realiza una acción.

Para este tipo de patrón conversacional, puedes implementar un La arquitectura de apps de chat con Pub/Sub, un servicio web, o Apps Script.

Para obtener más información sobre cómo recibir eventos y responder a ellos, consulta Trabaja con eventos de Google Chat.

Mensaje unidireccional desde una app de Chat

Un mensaje unidireccional de un patrón de app de Chat le permite a App de chat envía mensajes asíncronos a un Chat, pero no permite que los usuarios interactúen directamente con App de Chat Este patrón no es conversacional ni interactivo, pero puede resultar útil para funciones como informes de alarmas, como se muestra en el siguiente diagrama:

Arquitectura de un mensaje unidireccional

En el diagrama anterior, un usuario en el mismo espacio que el La app de Chat tiene el siguiente flujo de información:

  • La app de Chat envía un mensaje asíncrono llamando a la API de Chat o realizando publicaciones en un webhook URL, por ejemplo, “Alerta de desbordamiento de fila”.
  • De forma opcional, la app de Chat envía y asíncronos.

Para este tipo de patrón conversacional, puedes implementar un de la app de Chat mediante un servicio web, un webhook Apps Script, AppSheet, una aplicación de línea de comandos, o un guion.

Mensaje unidireccional a una app de Chat

Un mensaje unidireccional a un patrón de app de Chat le permite al usuario envía un mensaje a una app de Chat sin la La app de Chat responde mientras se procesa la solicitud. Si bien esta arquitectura es técnicamente posible, esto da como resultado una mala experiencia y desaconsejamos firmemente este patrón.