Recibe interacciones de los usuarios y responde a ellas

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.
La app de Chat recibe un objeto de evento de un activador de Agregado al espacio
Figura 1: Cuando un usuario agrega una app de Chat a un espacio, se activa el activador Se agregó al espacio y se envía un objeto de evento. Para responder con un mensaje, la app de Chat controla el objeto de evento y devuelve una acción que crea el mensaje.

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

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:

Arquitectura de cómo las apps de Google Chat procesan las interacciones de los usuarios.

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:

  • Envía un mensaje en un espacio de mensaje directo (MD) con la app de Chat.
  • Menciona con @ la app de Chat en cualquier tipo de espacio.
  • Envía un mensaje que contiene un vínculo que coincide con el patrón de URL para las vistas previas de vínculos.
  • Escribe texto en el menú de selección múltiple de un widget selectionInput.
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:

  1. En la consola de Google Cloud, ve a la página Configuración de la API de Chat:

    Ir a la página de configuración de la API de Chat

  2. En Funciones interactivas, busca Instrucciones de inicio y haz clic en Agregar una instrucción.

  3. En el campo Clasificación (1-3), ingresa un número del 1 al 3 para especificar el orden de visualización.

  4. 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.
  5. Configura el mensaje según el tipo que hayas seleccionado:

    • Si seleccionaste Instrucción de texto, haz lo siguiente:

      1. En Título, ingresa el título del mensaje que se muestra en el chip (hasta 30 caracteres).
      2. En Texto de la instrucción, ingresa el texto que se completará en la barra para escribir (hasta 60 caracteres).
      3. Opcional: Agrega títulos y texto localizados para los usuarios que hablan otros idiomas:
      4. En Mensajes localizados, haz clic en Agregar un idioma.
      5. En Idioma, selecciona un idioma compatible en el menú desplegable.
      6. En Título localizado, ingresa el título localizado (hasta 30 caracteres).
      7. En Texto de la instrucción localizada, ingresa el texto de la instrucción localizada (hasta 60 caracteres).
      8. Repite el proceso para agregar más idiomas según sea necesario.
    • Si seleccionaste Símbolo del sistema:

      1. En Comando de barra/Comando rápido, selecciona el comando en el menú desplegable.
  6. 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:
{
  "addOns": {
    "chat": {}
  }
}
El objeto chat se configura en la raíz del manifiesto:
{
  "chat": {}
}
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 chat contiene chat.user y chat.eventTime sin un campo de unión payload. Cuando un usuario hace clic en un botón de la tarjeta de la página principal, el objeto de evento incluye chat.buttonClickedPayload junto con commonEventObject.parameters (y commonEventObject.formInputs si 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 chat incluye chat.user, chat.space, chat.eventTime y la carga útil de interacción correspondiente:
    • messagePayload: Contiene space, message y configCompleteRedirectUri cuando un usuario envía un mensaje.
    • addedToSpacePayload: Contiene space, interactionAdd y configCompleteRedirectUri cuando la app de Chat se agrega a un espacio.
    • removedFromSpacePayload: Contiene el space cuando se quita la app de Chat de un espacio.
    • buttonClickedPayload: Contiene space, message, isDialogEvent y dialogEventType cuando un usuario hace clic en un botón de una tarjeta o un diálogo.
    • widgetUpdatedPayload: Contiene el space cuando un usuario interactúa con un widget, como escribir en un menú de selección múltiple con una fuente de datos externa.
    • appCommandPayload: Contiene space, message, appCommandMetadata, isDialogEvent, dialogEventType y configCompleteRedirectUri cuando 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) con chatDataActionMarkup.
  • 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:

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:

Ejemplo de mensaje de incorporación.

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.

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 isDialogEvent está configurado como true.
  • El DialogEventType (REQUEST_DIALOG, SUBMIT_DIALOG o CANCEL_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

  1. En la consola de Google Cloud, ve a la página Configuración de la API de Chat:

    Ir a la página de configuración de la API de Chat

  2. 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.

  3. 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`.'
  };
}