En esta página, se explica cómo crear una app de chat con Pub/Sub. Este tipo de arquitectura para una app de Chat es útil si tu organización tiene un firewall, que puede impedir que Chat envíe mensajes a tu app de Chat o si la app de Chat usa la API de Google Workspace Events. Sin embargo, esta arquitectura tiene las siguientes limitaciones debido a que estas apps de chat solo pueden enviar y recibir mensajes asíncronos:
- No se pueden usar diálogos en los mensajes. En su lugar, usa un mensaje de tarjeta.
- No se pueden actualizar tarjetas individuales con una respuesta síncrona. En su lugar, llama al método
patch
para actualizar todo el mensaje.
En el siguiente diagrama, se muestra la arquitectura de una app de chat compilada con Pub/Sub:
En el diagrama anterior, un usuario que interactúa con una app de chat de Pub/Sub tiene el siguiente flujo de información:
Un usuario envía un mensaje en Chat a una app de Chat, ya sea en un mensaje directo o en un espacio de Chat, o bien se produce un evento en un espacio de Chat para el que la app de Chat tiene una suscripción activa.
Chat envía el mensaje a un tema de Pub/Sub.
Un servidor de aplicaciones, que es un sistema en las instalaciones o en la nube que contiene la lógica de la app de Chat, se suscribe al tema de Pub/Sub para recibir el mensaje a través del firewall.
De manera opcional, la app de Chat puede llamar a la API de Chat para publicar mensajes de manera asíncrona o realizar otras operaciones.
Requisitos previos
Java
- Una cuenta de Google Workspace para empresas o empresas con acceso a Google Chat
- Un proyecto de Google Cloud con facturación habilitada. Para verificar que un proyecto existente tenga habilitada la facturación, consulta Verifica el estado de facturación de tus proyectos. Para crear un proyecto y configurar la facturación, consulta Crea un proyecto de Google Cloud.
- Java 11 o superior
- La herramienta de administración de paquetes Maven
Python
- Una cuenta de Google Workspace para empresas o empresas con acceso a Google Chat
- Un proyecto de Google Cloud con facturación habilitada. Para verificar que un proyecto existente tenga habilitada la facturación, consulta Verifica el estado de facturación de tus proyectos. Para crear un proyecto y configurar la facturación, consulta Crea un proyecto de Google Cloud.
- Python 3.6 o una versión posterior
- La herramienta de administración de paquetes pip
Node.js
- Una cuenta de Google Workspace para empresas o empresas con acceso a Google Chat
- Un proyecto de Google Cloud con facturación habilitada. Para verificar que un proyecto existente tenga habilitada la facturación, consulta Verifica el estado de facturación de tus proyectos. Para crear un proyecto y configurar la facturación, consulta Crea un proyecto de Google Cloud.
- Node.js 14 o versiones posteriores
- La herramienta de administración de paquetes npm
-
Un proyecto de Node.js inicializado Para inicializar un proyecto nuevo, crea una carpeta nueva y cambia a ella. Luego, ejecuta el siguiente comando en la interfaz de línea de comandos:
npm init
Configura el entorno
Antes de usar las APIs de Google, debes activarlas en un proyecto de Google Cloud. Puedes activar una o más APIs en un solo proyecto de Google Cloud.En la consola de Google Cloud, habilita la API de Google Chat y la API de Pub/Sub.
Configura Pub/Sub
Crea un tema de Pub/Sub al que la API de Chat pueda enviar mensajes. Te recomendamos que uses un solo tema por app de Chat.
Otorga permiso a Chat para publicar en el tema asignando el rol de Publicador de Pub/Sub a la siguiente cuenta de servicio:
chat-api-push@system.gserviceaccount.com
Crea una cuenta de servicio para que la app de Chat la autorice con Pub/Sub y Chat, y guarda el archivo de clave privada en tu directorio de trabajo.
Crea una suscripción de extracción al tema.
Asigna el rol de suscriptor de Pub/Sub en la suscripción de la cuenta de servicio que creaste antes.
Escribe el guion
Java
En una CLI, proporciona las credenciales de la cuenta de servicio:
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATH
En una CLI, proporciona el ID del proyecto de Google Cloud:
export PROJECT_ID=PROJECT_ID
En una CLI, proporciona el ID de suscripción de la suscripción a Pub/Sub que creaste anteriormente:
export SUBSCRIPTION_ID=SUBSCRIPTION_ID
En tu directorio de trabajo, crea un archivo llamado
pom.xml
.En el archivo
pom.xml
, pega el siguiente código:En tu directorio de trabajo, crea la estructura de directorio
src/main/java
.En el directorio
src/main/java
, crea un archivo llamadoMain.java
.En
Main.java
, pega el siguiente código:
Python
En una CLI, proporciona las credenciales de la cuenta de servicio:
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATH
En una CLI, proporciona el ID del proyecto de Google Cloud:
export PROJECT_ID=PROJECT_ID
En una CLI, proporciona el ID de suscripción de la suscripción a Pub/Sub que creaste anteriormente:
export SUBSCRIPTION_ID=SUBSCRIPTION_ID
En tu directorio de trabajo, crea un archivo llamado
requirements.txt
.En el archivo
requirements.txt
, pega el siguiente código:En tu directorio de trabajo, crea un archivo llamado
app.py
.En
app.py
, pega el siguiente código:
Node.js
En una CLI, proporciona las credenciales de la cuenta de servicio:
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATH
En una CLI, proporciona el ID del proyecto de Google Cloud:
export PROJECT_ID=PROJECT_ID
En una CLI, proporciona el ID de suscripción de la suscripción a Pub/Sub que creaste anteriormente:
export SUBSCRIPTION_ID=SUBSCRIPTION_ID
En tu directorio de trabajo, crea un archivo llamado
package.json
.En el archivo
package.json
, pega el siguiente código:En tu directorio de trabajo, crea un archivo llamado
index.js
.En
index.js
, pega el siguiente código:
Publica la app en Chat
En la consola de Google Cloud, ve a Menú > APIs y servicios > APIs y servicios habilitados > API de Google Chat > Configuración.
Configura la app de Chat para Pub/Sub:
- En Nombre de la app, ingresa
Quickstart App
. - En URL del avatar, escribe
https://developers.google.com/chat/images/quickstart-app-avatar.png
. - En Descripción, ingresa
Quickstart app
. - En Funcionalidad, selecciona Recibir mensajes 1:1 y Unirse a espacios y conversaciones grupales.
- En Configuración de la conexión, selecciona Cloud Pub/Sub y pega el nombre del tema de Pub/Sub que creaste antes.
- En Visibilidad, selecciona Hacer que esta app de Google Chat esté disponible para personas y grupos específicos en tu dominio y escribe tu dirección de correo electrónico.
- En Registros, selecciona Registrar errores en Logging.
- En Nombre de la app, ingresa
Haz clic en Guardar.
La app ya está lista para recibir y responder mensajes en Chat.
Ejecuta la secuencia de comandos:
En una CLI, cambia al directorio de trabajo y ejecuta la secuencia de comandos:
Java
mvn compile exec:java -Dexec.mainClass=Main
Python
python -m venv env
source env/bin/activate
pip install -r requirements.txt -U
python app.py
Node.js
npm install
npm start
Cuando ejecutas el código, la aplicación comienza a escuchar los mensajes publicados en el tema de Pub/Sub.
Prueba tu app de Chat
Para probar tu app de Chat, abre un espacio de mensajes directos con la app de Chat y envía un mensaje:
Abre Google Chat con la cuenta de Google Workspace que proporcionaste cuando te agregaste como verificador de confianza.
- Haz clic en Nuevo chat.
- En el campo Agregar 1 o más personas, escribe el nombre de tu app de Chat.
Selecciona tu app de Chat en los resultados. Se abrirá un mensaje directo.
- En el nuevo mensaje directo con la app, escribe
Hello
y presionaenter
.
Para agregar verificadores de confianza y obtener más información sobre cómo probar funciones interactivas, consulta Cómo probar funciones interactivas para apps de Google Chat.
Solucionar problemas
Cuando una app de Google Chat o una tarjeta muestran un error, la interfaz de Chat muestra un mensaje que dice "Se produjo un error". o "No se puede procesar tu solicitud". A veces, la IU de Chat no muestra ningún mensaje de error, pero la app o la tarjeta de Chat producen un resultado inesperado. Por ejemplo, es posible que no aparezca un mensaje de la tarjeta.
Aunque es posible que no se muestre un mensaje de error en la IU de Chat, los mensajes de error descriptivos y los datos de registro están disponibles para ayudarte a corregir errores cuando se activa el registro de errores de las apps de Chat. Si necesitas ayuda para ver, depurar y corregir errores, consulta Cómo solucionar problemas y corregir errores de Google Chat.
Limpia
Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que usaste en este instructivo, te recomendamos que borres el proyecto de Cloud.
- En la consola de Google Cloud, ve a la página Administrar recursos. Haz clic en Menú > IAM y administración > Administrar recursos.
- En la lista de proyectos, selecciona el proyecto que deseas borrar y haz clic en Borrar .
- En el cuadro de diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrarlo.
Temas relacionados
Para agregar más funciones a tu app de Chat, consulta lo siguiente: