En esta página, se describe cómo tu app de Google Chat puede recibir interacciones de los usuarios en Google Chat y responder a ellas.
Para compilar interfaces interactivas para las apps de Chat, usa los siguientes componentes:
- Activadores: Son las formas en que los usuarios de Google Chat pueden invocar una app de Chat, como agregarla a un espacio o enviarle un mensaje.
- Objetos de evento: Son los datos que las apps de Chat reciben de los activadores o las interacciones de la IU.
- Acciones: Son las formas en que las apps de Chat pueden responder a las interacciones, como enviar mensajes o devolver una interfaz de usuario basada en tarjetas.
Las apps de Chat pueden compilar y mostrar interfaces de las siguientes maneras:
- Mensajes que pueden contener texto, tarjetas estáticas o interactivas, y botones de accesorios
- Páginas principales (página principal de la app) que aparecen en la pestaña Página principal de los mensajes directos 1:1 con la app de Chat.
- Diálogos, que son tarjetas que se abren en una ventana nueva y, por lo general, solicitan a los usuarios que envíen información.
- Vistas previas de vínculos, que son tarjetas que muestran información preliminar sobre un servicio externo
Requisitos previos
- Una cuenta de Google Workspace de Business o Enterprise con acceso a Google Chat
- Crea un proyecto de Google Cloud
- Configura la pantalla de consentimiento de OAuth.
- Habilita y configura la API de Google Chat.
Cómo funcionan las interacciones del usuario
Cuando un usuario interactúa con una app de Chat, Google Chat invoca un activador configurado y envía un objeto de evento al extremo o a la función de tu app de Chat. Tu app de Chat procesa el objeto de evento y puede devolver una acción de forma síncrona en un plazo de 30 segundos o responder de forma asíncrona con la API de Chat.
En el siguiente diagrama, se muestra cómo las apps de Google Chat procesan las interacciones de los usuarios y responden a ellas:
Activadores
Los activadores son las formas específicas en que los usuarios invocan una app de Chat con la IU de Chat, como las @menciones o los comandos de la app.
En la siguiente tabla, se muestran los activadores de Chat, una descripción y cómo suelen responder las apps de Chat:
| Activador | Descripción | Respuesta típica |
|---|---|---|
| Se agregó al espacio |
Un usuario agrega la app de Chat a un espacio o un administrador de Google Workspace instala la app de Chat en espacios de mensajes directos para los usuarios de su organización. Para obtener información sobre las apps de Chat instaladas por los administradores, consulta Instala apps de Marketplace en tu dominio en la documentación de ayuda para administradores de Google Workspace. |
La app de Chat envía un mensaje de incorporación en el que se explica qué hace y cómo pueden interactuar con ella los usuarios del espacio. |
| Mensaje |
Un usuario interactúa con la app de Chat en un mensaje de una de las siguientes maneras:
|
La app de Chat responde según el contenido del mensaje. Por ejemplo, una app de Chat responde con un mensaje, adjunta una tarjeta de vista previa de un vínculo o sugiere elementos en un menú de selección múltiple. |
| Se quitó del espacio |
Un usuario quita la app de Chat de un espacio o un administrador de Google Workspace desinstala la app de Chat para un usuario de su organización. Los usuarios no pueden quitar las apps de Chat que haya instalado el administrador. Si un usuario instaló la app de Chat anteriormente, esta permanecerá instalada, independientemente de si un administrador de Google Workspace intenta desinstalarla. |
La app de Chat quita las notificaciones entrantes configuradas para el espacio (como borrar un webhook) y borra el almacenamiento interno. Las apps de Chat no pueden responder con mensajes a este activador porque ya no son miembros del espacio. |
| Comando de la app |
Un usuario invoca un comando de la app de Chat (como un comando de barra, un comando rápido o una acción de mensaje). |
La app de Chat responde al comando. Por ejemplo, responde con un mensaje o abre un diálogo. |
| Página principal de la app |
Un usuario abre la pestaña Página principal en un espacio de mensaje directo (MD) 1:1 con la app de Chat o interactúa con un widget en la tarjeta de la página principal. |
La app de Chat devuelve un objeto RenderActions que envía una tarjeta de página principal (pushCard) o actualiza la tarjeta de página principal que se muestra (updateCard).
|
Configura los extremos o las funciones de devolución de llamada para estos activadores en la página Configuración de la API de Chat en la consola de Google Cloud. Para obtener instrucciones paso a paso, consulta Configura la API de Google Chat.
Configura instrucciones de inicio
Las instrucciones de inicio ayudan a los usuarios a descubrir la funcionalidad de tu app de Chat cuando abren un mensaje directo 1:1 vacío con tu app. Puedes configurar hasta tres instrucciones de inicio.
Para agregar y configurar instrucciones de inicio, sigue estos pasos:
En la consola de Google Cloud, ve a la página Configuración de la API de Chat:
En Funciones interactivas, busca Instrucciones de inicio y haz clic en Agregar una instrucción.
En el campo Clasificación (1-3), ingresa un número del
1al3para especificar el orden de visualización.En Selección del tipo, elige cómo se comporta el mensaje:
- Instrucción de texto: Completa la barra para escribir con texto predefinido cuando el usuario hace clic en el chip de instrucciones.
- Símbolo del sistema: Ejecuta un comando de barra o un comando rápido registrado cuando se hace clic en él. No se pueden seleccionar los comandos que requieren argumentos adicionales.
Configura el mensaje según el tipo que hayas seleccionado:
Si seleccionaste Instrucción de texto, haz lo siguiente:
- En Título, ingresa el título del mensaje que se muestra en el chip (hasta 30 caracteres).
- En Texto de la instrucción, ingresa el texto que se completará en la barra para escribir (hasta 60 caracteres).
- Opcional: Agrega títulos y texto localizados para los usuarios que hablan otros idiomas:
- En Mensajes localizados, haz clic en Agregar un idioma.
- En Idioma, selecciona un idioma compatible en el menú desplegable.
- En Título localizado, ingresa el título localizado (hasta 30 caracteres).
- En Texto de la instrucción localizada, ingresa el texto de la instrucción localizada (hasta 60 caracteres).
- Repite el proceso para agregar más idiomas según sea necesario.
Si seleccionaste Símbolo del sistema:
- En Comando de barra/Comando rápido, selecciona el comando en el menú desplegable.
Haz clic en Listo y, luego, en Guardar en la parte inferior de la página.
Controla los reintentos de llamadas HTTP a tu servicio
Si falla una solicitud HTTPS a tu servicio (como un tiempo de espera, una falla temporal de la red o un código de estado HTTPS que no sea 2xx), Google Chat podría reintentar la entrega varias veces en unos minutos (pero esto no está garantizado). Como resultado, una app de Chat podría recibir el mismo evento varias veces en determinadas situaciones. Si la solicitud se completa correctamente, pero devuelve una carga útil de respuesta no válida, Google Chat no vuelve a intentar la solicitud.
Objetos de evento
Las apps de Chat reciben objetos de evento cuando se ejecuta un activador de Chat o cuando los usuarios de Chat interactúan con una IU de la app de Chat (como hacer clic en un botón o enviar un diálogo). El objeto de evento te permite usar datos de interacción para responder o actualizar una IU.
En 2025, se expandieron las apps de Google Chat para admitir eventos de complementos, y este es el comportamiento predeterminado para las apps de Chat nuevas desde julio de 2025. En toda la documentación de Chat, los eventos de complementos son el tipo de evento estándar que se muestra en las guías y las muestras de código. La documentación de los eventos de Chat (para las apps de Chat que no son complementos de Google Workspace) se divide en secciones contraídas (por ejemplo, Apps de Chat que no son complementos: Recibe eventos de interacción y responde a ellos).
Determina los tipos de eventos y respuestas
Cuando tu app de Chat recibe un objeto de evento, la estructura de la carga útil y la forma en que respondes dependen de si tu app de Chat está configurada como un complemento de Google Workspace.
Para confirmar qué tipo de objetos de evento recibe tu app y cómo debe responder, consulta la configuración de tu app con la siguiente tabla:
| Tipo de app | Recibe eventos de complementos (opción predeterminada para las apps nuevas creadas después de julio de 2025) |
Recibe eventos de Chat (opción predeterminada anterior, antes de julio de 2025) |
|---|---|---|
| Apps de Apps Script Verifica el archivo de manifiesto ( appsscript.json) |
El objeto chat se configura dentro de addOns:
|
El objeto chat se configura en la raíz del manifiesto:
|
| Otras apps Consulta la página Configuración de la API de Google Chat |
La casilla de verificación "Crea esta app de Chat como complemento de Google Workspace" está seleccionada. | La casilla de verificación "Crea esta app de Chat como complemento de Google Workspace" no está seleccionada. |
| Dónde encontrar la documentación | En las guías y las muestras de código Documentación de referencia de eventos: Objetos de eventos de complementos |
Secciones contraídas (por ejemplo,
Apps de Chat que
no son complementos: Recibe eventos de interacción y responde a ellos) Documentación de referencia de eventos: Eventos de interacción de la API de Chat |
| Cómo responder | Devuelve una acción, como DataActions o RenderActions.Consulta cómo responder con una acción |
Devuelve un recurso Message.Consulta cómo responder con un mensaje |
Cargas útiles de objetos de eventos
Cada objeto de evento de complementos incluye un
commonEventObject
con detalles del host y de la plataforma (hostApp: "CHAT", clientPlatform,
userLocale, userTimezone, parameters y formInputs) y un objeto
chat
que contiene el contexto específico de Chat:
- Para un activador de la página principal de la app (cuando un usuario abre la pestaña Página principal en un mensaje directo 1:1 con la app de Chat), el objeto
chatcontienechat.userychat.eventTimesin un campo de uniónpayload. Cuando un usuario hace clic en un botón de la tarjeta de la página principal, el objeto de evento incluyechat.buttonClickedPayloadjunto concommonEventObject.parameters(ycommonEventObject.formInputssi la tarjeta contiene entradas de formulario). - Para las interacciones de espacio y mensaje (Se agregó al espacio, Mensaje, Se quitó del espacio, Comando de la app o interacciones de botones y widgets), el objeto
chatincluyechat.user,chat.space,chat.eventTimey la carga útil de interacción correspondiente:messagePayload: Contienespace,messageyconfigCompleteRedirectUricuando un usuario envía un mensaje.addedToSpacePayload: Contienespace,interactionAddyconfigCompleteRedirectUricuando la app de Chat se agrega a un espacio.removedFromSpacePayload: Contiene elspacecuando se quita la app de Chat de un espacio.buttonClickedPayload: Contienespace,message,isDialogEventydialogEventTypecuando un usuario hace clic en un botón de una tarjeta o un diálogo.widgetUpdatedPayload: Contiene elspacecuando un usuario interactúa con un widget, como escribir en un menú de selección múltiple con una fuente de datos externa.appCommandPayload: Contienespace,message,appCommandMetadata,isDialogEvent,dialogEventTypeyconfigCompleteRedirectUricuando un usuario invoca un comando de la app.
Para obtener información sobre los objetos de eventos de complementos en Chat y otras aplicaciones de Google Workspace, consulta Objetos de eventos.
Cómo entregar una respuesta
En esta sección, se explica cómo las apps de Chat usan acciones para responder de forma síncrona a las interacciones de los usuarios.
Para responder con una acción, una app de Chat debe responder en un plazo de 30 segundos, y la respuesta debe aplicarse al espacio en el que se produjo la interacción. Estas respuestas síncronas no requieren autenticación. Si tu app de Chat necesita más de 30 segundos o debe actuar fuera del espacio, configura la autenticación y responde de forma asíncrona con la API de Google Chat.
Para responder a las interacciones de los usuarios de forma síncrona, tu app de Chat controla el objeto de evento entrante y devuelve uno de los siguientes objetos JSON:
DataActions: Crea o actualiza mensajes de Chat (CreateMessageAction,UpdateMessageAction) o adjunta vistas previas de vínculos (UpdateInlinePreviewAction) conchatDataActionMarkup.RenderActions: Crea, actualiza o cierra una página principal o un diálogo (pushCard,updateCard,endNavigation: "CLOSE_DIALOG"), o bien proporciona sugerencias de entrada dinámicas para un menú de selección múltiple (modifyCard).AuthorizationError: Muestra a los usuarios una tarjeta de autorización básica (basic_authorization_prompt) para que accedan o se autentiquen en un servicio externo.
En la siguiente tabla, se muestra cómo las apps de Chat pueden responder con
acciones. Las apps de Chat pueden devolver objetos JSON directamente o compilar la
respuesta con AddOnResponseService
y CardService de Apps Script.
| Respuesta de la app de Chat | Acción obligatoria que se debe devolver (JSON) | Acción obligatoria para la devolución (Apps Script) |
|---|---|---|
| Envía un mensaje o actualiza un mensaje. | DataActions (createMessageAction u updateMessageAction) |
DataActionsResponse |
| Obtener una vista previa de los vínculos en los mensajes que los usuarios de Chat envían en un espacio | DataActions (updateInlinePreviewAction) |
DataActionsResponse |
| Renderiza o actualiza una página principal en la pestaña Página principal de un mensaje directo. | RenderActions (pushCard u updateCard) |
ActionResponse |
| Abrir, actualizar o cerrar un diálogo | RenderActions (pushCard, updateCard o endNavigation: "CLOSE_DIALOG") |
ActionResponse |
| Para recopilar información de una tarjeta o un diálogo, sugiere elementos de selección según lo que los usuarios escriban en un menú de selección múltiple. | RenderActions (modifyCard) |
ActionResponse |
| Solicita la configuración o autorización para un servicio externo. | AuthorizationError (basic_authorization_prompt) |
AuthorizationException |
Responder con un mensaje
Las apps de Chat pueden responder con un mensaje a cualquiera de los siguientes activadores o interacciones:
- Activadores de Mensaje, como cuando los usuarios @mencionan o envían un mensaje directo a una app de Chat.
- Activadores de Se agregó al espacio, como cuando los usuarios instalan la app de Chat desde Google Workspace Marketplace o la agregan a un espacio.
- Activadores de comandos de la app, como cuando los usuarios invocan un comando de barra o un comando rápido.
- Clics en botones de tarjetas en mensajes o diálogos Por ejemplo, cuando los usuarios ingresan información y hacen clic en Enviar.
Las apps de Chat pueden incluir cualquiera de los siguientes elementos en un mensaje:
- Texto que contiene hipervínculos, @menciones y emojis Consulta Cómo darles formato a los mensajes.
- Una o más tarjetas, que pueden aparecer en un mensaje o abrirse en una ventana nueva como un diálogo Consulta Crea tarjetas para las apps de Google Chat.
- Uno o más widgets de accesorios, que son botones que aparecen después de cualquier texto o tarjeta en un mensaje.
Para responder con un mensaje, devuelve DataActions con un objeto CreateMessageAction:
{
"hostAppDataAction": {
"chatDataAction": {
"createMessageAction": {
"message": <var>MESSAGE</var>
}
}
}
}
Reemplaza MESSAGE por un recurso Message de la API de Chat.
En el siguiente ejemplo, una app de Chat crea y envía
un mensaje de texto de incorporación cada vez que se agrega a un espacio respondiendo al
activador Se agregó al espacio con DataActions:
Node.js
/**
* Sends an onboarding message when the Chat app is added to a space.
*
* @param {Object} req The request object from Google Chat.
* @param {Object} res The response object from the Chat app.
*/
exports.cymbalApp = function cymbalApp(req, res) {
const chatEvent = req.body.chat;
// Send an onboarding message when added to a Chat space
if (chatEvent.addedToSpacePayload) {
res.json({ hostAppDataAction: { chatDataAction: { createMessageAction: { message: {
text: 'Hi, Cymbal at your service. I help you manage your calendar ' +
'from Google Chat. Take a look at your schedule today by typing ' +
'`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. ' +
'To learn what else I can do, type `/help`.'
}}}}});
}
};
Python
from flask import Flask, request, json
app = Flask(__name__)
@app.route('/', methods=['POST'])
def cymbal_app():
"""Sends an onboarding message when the Chat app is added to a space.
Returns:
Mapping[str, Any]: The response object from the Chat app.
"""
chat_event = request.get_json()["chat"]
if "addedToSpacePayload" in chat_event:
return json.jsonify({ "hostAppDataAction": { "chatDataAction": {
"createMessageAction": { "message": {
"text": 'Hi, Cymbal at your service. I help you manage your calendar ' +
'from Google Chat. Take a look at your schedule today by typing ' +
'`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. ' +
'To learn what else I can do, type `/help`.'
}}
}}})
Java
@SpringBootApplication
@RestController
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
/*
* Sends an onboarding message when the Chat app is added to a space.
*
* @return The response object from the Chat app.
*/
@PostMapping("/")
@ResponseBody
public GenericJson onEvent(@RequestBody JsonNode event) throws Exception {
JsonNode chatEvent = event.at("/chat");
if (!chatEvent.at("/addedToSpacePayload").isEmpty()) {
return new GenericJson() { {
put("hostAppDataAction", new GenericJson() { {
put("chatDataAction", new GenericJson() { {
put("createMessageAction", new GenericJson() { {
put("message", new Message().setText(
"Hi, Cymbal at your service. I help you manage your calendar " +
"from Google Chat. Take a look at your schedule today by typing " +
"`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. " +
"To learn what else I can do, type `/help`."
));
} });
} });
} });
} };
}
return new GenericJson();
}
}
Apps Script
/**
* Sends an onboarding message when the Chat app is added to a space.
*
* @param {Object} event The event object from Google Chat.
* @return {Object} Response from the Chat app.
*/
function onAddedToSpace(event) {
return { hostAppDataAction: { chatDataAction: { createMessageAction: { message: {
text: 'Hi, Cymbal at your service. I help you manage your calendar ' +
'from Google Chat. Take a look at your schedule today by typing ' +
'`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. ' +
'To learn what else I can do, type `/help`.'
}}}}};
}
La muestra de código devuelve el siguiente mensaje de texto:
Actualiza un mensaje
Las apps de Chat también pueden actualizar los mensajes que envían. Por ejemplo, una app de Chat puede actualizar un mensaje después de que un usuario envía un diálogo o hace clic en un botón de una tarjeta en un mensaje.
Para actualizar un mensaje de la app de Chat en respuesta a una
interacción, devuelve DataActions con un
UpdateMessageAction:
{
"hostAppDataAction": {
"chatDataAction": {
"updateMessageAction": {
"message": <var>MESSAGE</var>
}
}
}
}
Reemplaza MESSAGE por un recurso Message de la API de Chat.
Las apps de Chat también pueden actualizar un mensaje enviado por un usuario para adjuntar una tarjeta de vista previa de vínculo con updateInlinePreviewAction. Para obtener más detalles, consulta
Vínculos de vista previa.
Responde de forma asíncrona con la API de Google Chat
En lugar de devolver una acción de forma síncrona, es posible que las apps de Chat necesiten llamar a la API de Google Chat para responder a una interacción o enviar mensajes proactivos. Por ejemplo, las apps de Chat deben llamar a la API de Google Chat para realizar cualquiera de las siguientes acciones:
- Responder a una interacción después de 30 segundos (por ejemplo, después de completar una tarea de larga duración)
- Envía mensajes según un programa o envía notificaciones sobre cambios en recursos externos.
- Realizar tareas fuera del espacio en el que se produjo la interacción
- Realizar tareas en Chat que no están disponibles como acciones síncronas, como enumerar espacios o agregar miembros a un espacio.
- Realizar tareas en nombre de un usuario de Chat (lo que requiere autenticación del usuario)
Cuando respondas a una interacción después de 30 segundos, para evitar que aparezca un mensaje de error para el usuario que indique que tu app de Chat no responde, debes confirmar la recepción del objeto de evento en un plazo de 30 segundos. Para ello, devuelve una respuesta vacía:
Node.js
async function onEvent(req, res) {
// Trigger asynchronous job that will respond using the Google Chat API.
...
// Respond with an empty response to the Google Chat platform.
return res.send({});
};
Python
def on_event(event) -> dict:
# Trigger asynchronous job that will respond using the Google Chat API.
...
// Respond with an empty response to the Google Chat platform.
return {}
Java
public String onEvent(JsonNode event) {
// Trigger asynchronous job that will respond using the Google Chat API.
...
// Respond with an empty response to the Google Chat platform.
return "{}";
}
Apps Script
function onEvent(event) {
// Trigger asynchronous job that will respond using the Google Chat API.
...
// Respond with an empty response to the Google Chat platform.
return null;
}
Para enviar un mensaje con la API de Chat, configura la autenticación y llama
al método spaces.messages.create. Para conocer los pasos, consulta
Envía un mensaje. Para obtener guías sobre cómo usar
métodos adicionales de la API de Chat, consulta la
descripción general de la API de Chat.
Temas relacionados
- Configura la API de Google Chat
- Enviar un mensaje
- Responder a comandos
- Cómo abrir diálogos interactivos
- Lee los datos de formularios que ingresan los usuarios en las tarjetas
- Vínculos de vista previa
- Crea una página principal para una app de Chat
- Verifica las solicitudes de Chat
- Prueba las funciones interactivas de las apps de Google Chat
Apps de Chat que no son complementos: Reciben interacciones de los usuarios y responden a ellas
Las apps de Chat que no son complementos de Google Workspace reciben
eventos de interacción de la API de Chat (Event)
en lugar de
objetos de eventos de complementos de Google Workspace (EventObject),
y responden devolviendo un recurso
Message
en lugar de una acción.
Para actualizar una app de Chat que no sea un complemento al framework de complementos de Google Workspace, consulta Convierte una app de Google Chat en un complemento de Google Workspace.
Tipos de eventos de interacción
Para cada tipo de interacción del usuario, Google Chat envía a una
app de Chat que no es un complemento
un objeto Event cuyo tipo se representa con el
campo eventType:
| Interacción del usuario | eventType |
Respuesta típica de una app de Chat que no es un complemento |
|---|---|---|
| Un usuario envía un mensaje a una app de Chat. Por ejemplo, menciona con @ a la app de Chat o usa un comando de barra. | MESSAGE |
La app de Chat responde según el contenido del
mensaje. Por ejemplo, una app de Chat responde al
comando de barra /about con un mensaje que explica las tareas
que puede realizar. |
| Un usuario agrega una app de Chat a un espacio. | ADDED_TO_SPACE |
La app de Chat envía un mensaje de incorporación en el que se explica qué hace y cómo pueden interactuar con ella los usuarios del espacio. |
| Un usuario quita una app de Chat de un espacio. | REMOVED_FROM_SPACE |
La app de Chat quita las notificaciones entrantes configuradas para el espacio (como borrar un webhook) y borra el almacenamiento interno. |
| Un usuario hace clic en un botón de una tarjeta de un mensaje, un diálogo o una página principal de una app de Chat. | CARD_CLICKED |
La app de Chat procesa y almacena los datos que envió el usuario, o bien devuelve otra tarjeta. |
| Un usuario abre la página principal de la app de Chat haciendo clic en la pestaña Página principal en un mensaje 1:1. | APP_HOME |
La app de Chat devuelve una tarjeta estática o interactiva desde la página principal. |
| Un usuario envía un formulario desde la página principal de la app de Chat. | SUBMIT_FORM |
La app de Chat procesa y almacena los datos que envió el usuario, o bien devuelve otra tarjeta. |
| Un usuario invoca un comando con un comando rápido. | APP_COMMAND |
La app de Chat responde según el comando que se invocó. Por ejemplo, una app de Chat responde al comando Acerca de con un mensaje que explica las tareas que puede realizar. |
Para ver todos los eventos de interacción admitidos y las cargas útiles de JSON de ejemplo, consulta
Tipos de eventos de interacción de las apps de Chat
y la
documentación de referencia de EventType.
Eventos de interacción de diálogos
Si tu app de Chat que no es un complemento abre diálogos, el evento de interacción contiene la siguiente información adicional que puedes usar para procesar una respuesta:
- El campo
isDialogEventestá configurado comotrue. - El
DialogEventType(REQUEST_DIALOG,SUBMIT_DIALOGoCANCEL_DIALOG) aclara si la interacción activa un diálogo para abrir, envía información de un diálogo o cierra un diálogo.
Configura una app de Chat que no sea un complemento para recibir eventos de interacción
En la consola de Google Cloud, ve a la página Configuración de la API de Chat:
En Funciones interactivas, borra Compila esta app de Chat como un complemento de Google Workspace y configura Funcionalidad, un solo extremo de Configuración de conexión (URL del extremo HTTP, Apps Script, nombre del tema de Cloud Pub/Sub o Dialogflow), Comandos, Instrucciones de inicio, Vistas previas de vínculos y Visibilidad.
Haz clic en Guardar.
Responde con un mensaje en una app de Chat que no sea un complemento
Para responder de forma síncrona en una app de Chat que no sea un
complemento, devuelve un
objeto Message
directamente. En el siguiente ejemplo, se responde a un evento de interacción ADDED_TO_SPACE con un mensaje de texto:
Node.js
/**
* Sends an onboarding message when the Chat app is added to a space.
*
* @param {Object} req The event object from Chat API.
* @param {Object} res The response object from the Chat app.
*/
exports.cymbalApp = function cymbalApp(req, res) {
// Send an onboarding message when added to a Chat space
if (req.body.type === 'ADDED_TO_SPACE') {
res.json({
'text': 'Hi, Cymbal at your service. I help you manage your calendar ' +
'from Google Chat. Take a look at your schedule today by typing ' +
'`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To ' +
'learn what else I can do, type `/help`.'
});
}
};
Python
from flask import Flask, request, json
app = Flask(__name__)
@app.route('/', methods=['POST'])
def cymbal_app():
"""Sends an onboarding message when the Chat app is added to a space.
Returns:
Mapping[str, Any]: The response object from the Chat app.
"""
event = request.get_json()
if event['type'] == 'ADDED_TO_SPACE':
return json.jsonify({
'text': 'Hi, Cymbal at your service. I help you manage your calendar ' +
'from Google Chat. Take a look at your schedule today by typing ' +
'`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To ' +
'learn what else I can do, type `/help`.'
})
return json.jsonify({})
Java
@SpringBootApplication
@RestController
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
/*
* Sends an onboarding message when the Chat app is added to a space.
*
* @return The response object from the Chat app.
*/
@PostMapping("/")
@ResponseBody
public Message onEvent(@RequestBody JsonNode event) {
switch (event.get("type").asText()) {
case "ADDED_TO_SPACE":
return new Message().setText(
"Hi, Cymbal at your service. I help you manage your calendar " +
"from Google Chat. Take a look at your schedule today by typing " +
"`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. " +
"To learn what else I can do, type `/help`.");
default:
return new Message();
}
}
}
Apps Script
/**
* Sends an onboarding message when the Chat app is added to a space.
*
* @param {Object} event The event object from Chat API.
* @return {Object} Response from the Chat app.
*/
function onAddToSpace(event) {
return {
'text': 'Hi, Cymbal at your service. I help you manage your calendar ' +
'from Google Chat. Take a look at your schedule today by typing ' +
'`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To learn ' +
'what else I can do, type `/help`.'
};
}