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, actualiza todo el mensaje llamando al método
patch
.
En el siguiente diagrama, se muestra la arquitectura de una app de chat creada 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, es decir, un sistema en la nube o local 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 forma asíncrona o realizar otras operaciones.
Requisitos previos
Java
- Una cuenta de Google Workspace para empresas o Enterprise 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 una versión posterior
- La herramienta de administración de paquetes Maven
Python
- Una cuenta de Google Workspace para empresas o Enterprise 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 Enterprise 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 una versión posterior
- 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 tu 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 de 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 se autorice con Pub/Sub y Chat, y guarda el archivo de claves privadas 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 para la cuenta de servicio que creaste anteriormente.
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 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 directorios
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 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 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 Unirse a espacios y conversaciones grupales.
- En Configuración de conexión, selecciona Cloud Pub/Sub y pega el nombre del tema de Pub/Sub que creaste anteriormente.
- 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 está lista para recibir y responder mensajes en Chat.
Ejecuta la secuencia de comandos:
En una CLI, cambia a tu 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 ejecutes el código, la aplicación comenzará 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 Agrega 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 las pruebas de funciones interactivas, consulta Cómo probar funciones interactivas para apps de Google Chat.
Solucionar problemas
Cuando una app o una tarjeta de Google Chat muestra un error, la interfaz de Chat muestra un mensaje que dice "Se produjo un error". o "No se pudo 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.
Si bien es posible que no se muestre un mensaje de error en la IU de Chat, hay mensajes de error descriptivos y datos de registro disponibles para ayudarte a corregir errores cuando se activa el registro de errores para las apps de Chat. Para obtener ayuda para ver, depurar y corregir errores, consulta Cómo solucionar y corregir errores de Google Chat.
Haz una limpieza
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 diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.
Temas relacionados
Para agregar más funciones a tu app de Chat, consulta los siguientes recursos: