En esta página, se describe cómo configurar un webhook para enviar mensajes asíncronos a un espacio de Chat mediante activadores externos. Por ejemplo, puedes configurar una aplicación de supervisión para notificar al personal de guardia en Chat cuando un servidor falle. Si quieres enviar un mensaje síncrono con una app de Chat, consulta Cómo enviar un mensaje.
Con este tipo de diseño de arquitectura, los usuarios no pueden interactuar con el webhook o la aplicación externa conectada porque la comunicación es unidireccional. Los webhooks no son conversacionales. No pueden responder ni recibir mensajes de los usuarios ni los eventos de interacción de la app de Chat. Para responder mensajes, compila una app de Chat en lugar de un webhook.
Si bien, técnicamente, un webhook no es una app de chat (los webhooks conectan aplicaciones mediante solicitudes HTTP estándar), en esta página, se hace referencia a este como una app de chat para simplificar. Cada webhook solo funciona en el espacio de Chat en el que está registrado. Los webhooks entrantes funcionan en los mensajes directos, pero solo cuando todos los usuarios tienen habilitadas las apps de chat. No puedes publicar webhooks en Google Workspace Marketplace.
En el siguiente diagrama, se muestra la arquitectura de un webhook conectado a Chat:
En el diagrama anterior, una app de Chat tiene el siguiente flujo de información:
- La lógica de la app de Chat recibe información de servicios externos de terceros, como un sistema de administración de proyectos o una herramienta de tickets.
- La lógica de la app de Chat se aloja en un sistema local o en la nube que puede enviar mensajes mediante una URL de webhook a un espacio de Chat específico.
- Los usuarios pueden recibir mensajes de la app de Chat en ese espacio de Chat específico, pero no pueden interactuar con la app de Chat.
Requisitos previos
Python
- Python 3.10.7 o superior.
- Una cuenta de Google Workspace con acceso a Chat
- Un proyecto de Google Cloud.
- Asegúrate de activar la facturación para tu proyecto de Cloud. Aprende a verificar el estado de facturación de tus proyectos.
- Un espacio de Chat existente
La biblioteca
httplib2
Si es necesario, ejecuta el siguiente comando de la interfaz de línea de comandos (CLI) para instalar la biblioteca conpip
:pip install httplib2
Node.js
- Se instalaron Node.js y npm.
- Una cuenta de Google Workspace con acceso a Chat
- Un proyecto de Google Cloud.
- Asegúrate de activar la facturación para tu proyecto de Cloud. Aprende a verificar el estado de facturación de tus proyectos.
- Un espacio de Chat existente
Java
- Java 11 o superior.
- Apache Maven
- Una cuenta de Google Workspace con acceso a Chat
- Un proyecto de Google Cloud.
- Asegúrate de activar la facturación para tu proyecto de Cloud. Aprende a verificar el estado de facturación de tus proyectos.
- Un espacio de Chat existente
Apps Script
- Una cuenta de Google Workspace con acceso a Chat
- Un espacio de Chat existente
Crea un webhook
Para crear un webhook, regístralo en el espacio de Chat en el que deseas recibir mensajes y, luego, escribe una secuencia de comandos que envíe mensajes.
Registra el webhook entrante
- En un navegador, abre Chat. Los webhooks no se pueden configurar desde la app de Chat para dispositivos móviles.
- Ve al espacio en el que deseas agregar un webhook.
- Junto al título del espacio, haz clic en la flecha para expandir más y, luego, en Integraciones y apps.
- Haz clic en Agregar webhooks.
- En el campo Name, ingresa
Quickstart Webhook
. - En el campo URL del avatar, ingresa
https://developers.google.com/chat/images/chat-product-icon.png
. - Haz clic en Guardar.
- Para copiar la URL de webhook, haz clic en Más y, luego, en Copiar vínculo.
Escribe la secuencia de comandos del webhook
La secuencia de comandos del webhook de ejemplo envía un mensaje al espacio en el que está registrado el webhook mediante el envío de una solicitud POST
a la URL de webhook. La API de Chat responde con una instancia de Message
.
Selecciona un lenguaje para aprender a crear una secuencia de comandos de webhook:
Python
En el directorio de trabajo, crea un archivo llamado
quickstart.py
.En
quickstart.py
, pega el siguiente código:Reemplaza el valor de la variable
WEBHOOK_URL
por la URL de webhook que copiaste cuando registraste el webhook.
Node.js
En el directorio de trabajo, crea un archivo llamado
index.js
.En
index.js
, pega el siguiente código:Reemplaza el valor de la variable
webhookURL
por la URL de webhook que copiaste cuando registraste el webhook.
Java
En el directorio de trabajo, crea un archivo llamado
pom.xml
.En
pom.xml
, copia y pega lo siguiente:En tu directorio de trabajo, crea la siguiente estructura de directorio
src/main/java
.En el directorio
src/main/java
, crea un archivo llamadoApp.java
.En
App.java
, pega el siguiente código:Reemplaza el valor de la variable
URL
por la URL de webhook que copiaste cuando registraste el webhook.
Apps Script
En un navegador, ve a Apps Script.
Haz clic en New Project.
Pega el siguiente código:
Reemplaza el valor de la variable
url
por la URL de webhook que copiaste cuando registraste el webhook.
Ejecuta la secuencia de comandos del webhook
En una CLI, ejecuta la secuencia de comandos:
Python
python3 quickstart.py
Node.js
node index.js
Java
mvn compile exec:java -Dexec.mainClass=App
Apps Script
- Haz clic en Ejecutar.
Cuando ejecutas el código, el webhook envía un mensaje al espacio en el que lo registraste.
Iniciar o responder una conversación de mensajes
Especifica
spaces.messages.thread.threadKey
como parte del cuerpo de la solicitud del mensaje. Según si inicias o respondes una conversación, usa los siguientes valores parathreadKey
:Si inicias un subproceso, establece
threadKey
en una string arbitraria, pero toma nota de este valor para publicar una respuesta en la conversación.Si respondes a un subproceso, especifica el
threadKey
que se configuró cuando se inició el subproceso. Por ejemplo, para publicar una respuesta en la conversación en la que el mensaje inicial usóMY-THREAD
, configuraMY-THREAD
.
Define el comportamiento del subproceso si no se encuentra el
threadKey
especificado:Responder una conversación o iniciar una nueva Agrega el parámetro
messageReplyOption=REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD
a la URL de webhook. Pasar este parámetro de URL hace que Chat busque un subproceso existente con elthreadKey
especificado. Si se encuentra uno, el mensaje se publica como respuesta a esa conversación. Si no se encuentra ninguno, el mensaje inicia un subproceso nuevo correspondiente a esethreadKey
.Responder una conversación o no hacer nada Agrega el parámetro
messageReplyOption=REPLY_MESSAGE_OR_FAIL
a la URL de webhook. Pasar este parámetro de URL hace que Chat busque un subproceso existente con elthreadKey
especificado. Si se encuentra uno, el mensaje se publica como respuesta a esa conversación. Si no se encuentra ninguno, el mensaje no se envía.
Para obtener más información, consulta
messageReplyOption
.
La siguiente muestra de código inicia o responde una conversación de mensajes:
Python
Node.js
Apps Script
Temas relacionados
- Elige una arquitectura de app de Chat
- Cómo enviar mensajes de tarjetas
- Cómo darles formato a los mensajes