En esta página, se describe cómo una app de Google Chat puede abrir diálogos para mostrar interfaces de usuario (IU) y responder a los usuarios.
Los diálogos son interfaces basadas en tarjetas y ventanas que se abren desde un espacio de Chat o mensaje. El diálogo y su contenido solo son visibles para el usuario que lo abrió.
Las apps de Chat pueden usar diálogos para solicitar y recopilar información de los usuarios de Chat, incluidos formularios de varios pasos. Para obtener más detalles sobre la compilación de entradas de formularios, consulta Recopila y procesa información de los usuarios.
Requisitos previos
HTTP
Un complemento de Google Workspace que extiende Google Chat. Para compilar uno, completa la guía de inicio rápido de HTTP.
Apps Script
Un complemento de Google Workspace que extiende Google Chat. Para compilar uno, completa la guía de inicio rápido de Apps Script.
Abre un diálogo
En esta sección, se explica cómo responder y configurar un diálogo de la siguiente manera:
- Activa la solicitud de diálogo desde una interacción del usuario.
- Maneja la solicitud mostrando y abriendo un diálogo.
- Después de que los usuarios envíen información, procesa el envío cerrando el diálogo o mostrando otro.
Activa una solicitud de diálogo
Una app de Chat solo puede abrir diálogos para responder a una interacción del usuario, como un comando o un clic en un botón de un mensaje en una tarjeta.
Para responder a los usuarios con un diálogo, una app de Chat debe compilar una interacción que active la solicitud de diálogo, como la siguiente:
- Responder a un comando. Para activar la solicitud desde un comando, debes marcar la casilla de verificación Abre un diálogo cuando configures el comando.
- Responder a un clic en un botón en un
mensaje,
ya sea como parte de una tarjeta o en la parte inferior del mensaje. Para activar la
solicitud desde un botón en un mensaje, configura la
acción
onClickdel botón estableciendo suinteractionenOPEN_DIALOG.
/addContact. El mensaje también incluye un botón en el que los usuarios pueden hacer clic para activar el comando.
En la siguiente muestra de código, se muestra cómo activar una solicitud de diálogo desde un botón en un mensaje de tarjeta. Para abrir el diálogo, establece el campo
onClick.action.interaction
del botón en OPEN_DIALOG:
Node.js
Reemplaza FUNCTION_URL por el extremo HTTP que controla los clics en los botones.
Python
Reemplaza FUNCTION_URL por el extremo HTTP que controla los clics en los botones.
Java
Reemplaza FUNCTION_URL por el extremo HTTP que controla los clics en los botones.
Apps Script
En este ejemplo, se envía un mensaje de tarjeta mostrando el JSON de la tarjeta. También puedes usar el servicio de tarjetas de Apps Script.
Abre el diálogo inicial
Cuando un usuario activa una solicitud de diálogo, tu app de Chat
recibe un
objeto de evento con una carga útil
que especifica un dialogEventType objeto como REQUEST_DIALOG.
Para abrir un diálogo, tu app de Chat puede responder a la
solicitud mostrando un
RenderActions
objeto con la navegación pushCard para mostrar una tarjeta. La tarjeta debe contener
cualquier elemento de la interfaz de usuario (IU), incluidas una o más
sections[]
de widgets. Para recopilar información de los usuarios, puedes especificar widgets de entrada de formulario y un widget de botón. Para obtener más información sobre el diseño de entradas de formularios, consulta
Recopila y procesa información de los usuarios.
En la siguiente muestra de código, se muestra cómo una app de Chat muestra una respuesta que abre un diálogo:
Node.js
Reemplaza FUNCTION_URL por el extremo HTTP que controla los clics en los botones.
Python
Reemplaza FUNCTION_URL por el extremo HTTP que controla los clics en los botones.
Java
Reemplaza FUNCTION_URL por el extremo HTTP que controla los clics en los botones.
Apps Script
En este ejemplo, se envía un mensaje de tarjeta mostrando el JSON de la tarjeta. También puedes usar el servicio de tarjetas de Apps Script.
Maneja el envío del diálogo
Cuando los usuarios hacen clic en un botón que envía un diálogo, tu
app de Chat recibe un objeto de evento con un
ButtonClickedPayload
objeto. En la carga útil, dialogEventType se establece en SUBMIT_DIALOG. Para
comprender cómo recopilar y procesar la información en el diálogo, consulta
Recopila y procesa información de los usuarios de Google Chat.
Tu app de Chat debe responder al objeto de evento de una de las siguientes maneras:
- Muestra otro diálogo para completar otra tarjeta o formulario.
- Cierra el diálogo después de validar los datos que envió el usuario y, de manera opcional, envía un mensaje de confirmación.
Opcional: Muestra otro diálogo
Después de que los usuarios envían el diálogo inicial, las apps de Chat pueden mostrar uno o más diálogos adicionales para ayudar a los usuarios a revisar la información antes de enviarla, completar formularios de varios pasos o propagar el contenido del formulario de forma dinámica.
Para procesar los datos que ingresan los usuarios, la app de Chat
controla los datos en el
commonEventObject.formInputs
objeto del evento. Para obtener más información sobre cómo recuperar valores de widgets de entrada, consulta
Recopila y procesa información de los usuarios.
Para hacer un seguimiento de los datos que ingresan los usuarios desde el diálogo inicial, debes agregar parámetros al botón que abre el siguiente diálogo. Para obtener más información, consulta Transfiere datos a otra tarjeta.
En este ejemplo, una app de Chat abre un diálogo inicial que lleva a un segundo diálogo para confirmar antes de enviar:
Node.js
Reemplaza FUNCTION_URL por el extremo HTTP que controla los clics en los botones.
Python
Reemplaza FUNCTION_URL por el extremo HTTP que controla los clics en los botones.
Java
Reemplaza FUNCTION_URL por el extremo HTTP que controla los clics en los botones.
Apps Script
En este ejemplo, se envía un mensaje de tarjeta mostrando el JSON de la tarjeta. También puedes usar el servicio de tarjetas de Apps Script.
Cierra el diálogo
Cuando los usuarios hacen clic en un botón de envío en un diálogo, tu app de Chat ejecuta su acción asociada y proporciona el objeto de evento con buttonClickedPayload establecido de la siguiente manera:
isDialogEventestrue.dialogEventTypeesSUBMIT_DIALOG.
La app de Chat debe mostrar un
RenderActions
objeto con
EndNavigation
establecido en CLOSE_DIALOG.
Opcional: Muestra una notificación temporal
Cuando cierras el diálogo, también puedes mostrar una notificación de texto temporal al usuario que interactúa con la app.
Para mostrar una notificación, muestra el
RenderActions
objeto con el campo notification establecido.
En el siguiente ejemplo, se cierra el diálogo con una notificación de texto:
Node.js
Python
Java
Apps Script
En este ejemplo, se envía un mensaje de tarjeta mostrando el JSON de la tarjeta. También puedes usar el servicio de tarjetas de Apps Script.
Para obtener detalles sobre el paso de parámetros entre diálogos, consulta Transfiere datos a otra tarjeta.
Opcional: Envía un mensaje de confirmación de Chat
Cuando cierras el diálogo, también puedes enviar un mensaje nuevo de Chat o actualizar uno existente.
Para enviar un mensaje nuevo, muestra un
DataActions
objeto con el campo
CreateMessageAction establecido con el mensaje nuevo. Por ejemplo, para cerrar el diálogo y enviar un mensaje de texto, muestra lo siguiente:
En el siguiente ejemplo, se cierra el diálogo enviando un mensaje nuevo:
Node.js
Python
Java
Apps Script
En este ejemplo, se envía un mensaje de tarjeta mostrando el JSON de la tarjeta. También puedes usar el servicio de tarjetas de Apps Script.
Para actualizar un mensaje después de que el usuario envía un diálogo, muestra un objeto DataActions que contenga una de las siguientes acciones:
UpdateMessageAction: Actualiza un mensaje enviado por la app de Chat, como el mensaje desde el que el usuario solicitó el diálogo.UpdateInlinePreviewAction: Actualiza la tarjeta desde una vista previa del vínculo.
Solucionar problemas
Cuando una app o 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 la solicitud". A veces, la IU de Chat no muestra ningún mensaje de error, pero la app o tarjeta de Chat produce un resultado inesperado; por ejemplo, es posible que no aparezca un mensaje de tarjeta.
Aunque 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. Si necesitas ayuda para ver, depurar y corregir errores, consulta Soluciona problemas y corrige errores de Google Chat.