En esta página, se explica cómo las apps de Google Chat pueden enviar mensajes para responder a las interacciones del usuario.
-
Figura 1. Una app de Chat responde a un comando de barra con un mensaje de texto y un botón. -
Figura 2: Una app de Chat abre un diálogo en el que los usuarios pueden ingresar información. -
Figura 5: Una app de Chat envía un mensaje con texto y una tarjeta interactiva.
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.
Diseña el mensaje
Las apps de Chat pueden incluir cualquiera de los siguientes elementos en un mensaje:
- Texto que contiene hipervínculos, menciones con @ y emojis
- Una o más tarjetas, que pueden aparecer en un mensaje o abrirse en una ventana nueva como un diálogo
- Uno o más widgets de accesorios, que son botones que aparecen después de cualquier texto o tarjeta en un mensaje
Para obtener información sobre el diseño de mensajes, consulta la siguiente documentación de la API de Google Chat:
- Descripción general de los mensajes
- Cómo darles formato a los mensajes
- Crea tarjetas para las apps de Google Chat
- Agrega texto e imágenes a las tarjetas
- Cómo agregar elementos interactivos de la IU a las tarjetas
Responder con un mensaje
Las apps de Chat pueden responder con un mensaje a cualquiera de los siguientes activadores o interacciones:
- Activadores demensajes, como cuando los usuarios mencionan con @o envían un mensaje directo a una app de Chat.
- Activadores deagregado al espacio, como cuando los usuarios instalan la app de Chat desde Google Workspace Marketplace o la agregan a un espacio
- Clics en botones de tarjetas en mensajes o diálogos Por ejemplo, cuando los usuarios ingresan información y hacen clic en Enviar
Para responder con un mensaje, muestra la acción DataActions con un
CreateMessageAction objeto:
{ "hostAppDataAction": { "chatDataAction": { "createMessageAction": {
"message": MESSAGE
}}}
Reemplaza MESSAGE por un
Message
recurso de la API de Chat. Para obtener más información sobre cómo funcionan las acciones, consulta
Acciones de Chat.
En el siguiente ejemplo, una app de Chat crea y envía un mensaje de texto cada vez que se agrega a un espacio. Para enviar un mensaje de texto cuando un usuario agrega tu app de Chat a un espacio, tu app de Chat responde al activador Agregado al espacio mostrando la acción DataActions:
Node.js
/**
* Sends an onboarding message when the Chat app is added to a space.
*
* @param {Object} req The request object from Google Workspace add-on.
* @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`."
));
} });
} });
} });
} };
}
}
}
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 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 muestra el siguiente mensaje de texto:
Para obtener ejemplos adicionales de cómo responder con un mensaje, consulta las siguientes guías:
- Cómo responder a comandos rápidos
- Cómo responder a comandos de barra
- Cómo abrir diálogos interactivos
- Cómo recopilar información de los usuarios de Google Chat
Actualiza un mensaje
Las apps de Chat también pueden actualizar los mensajes que envían. Por ejemplo, para actualizar un mensaje después de que un usuario envió un diálogo o hizo clic en un botón en un mensaje.
Para actualizar un mensaje de la app de Chat, muestra la acción
DataActions con un
UpdateMessageAction, como se muestra en
el siguiente ejemplo:
{ "hostAppDataAction": { "chatDataAction": { "updateMessageAction": {
"message": MESSAGE
}}}}
Reemplaza MESSAGE por un
Message
recurso de la API de Chat.
Para obtener más información sobre cómo funcionan las acciones, consulta Acciones de Chat.
Las apps de Chat también pueden actualizar un mensaje de un usuario para mostrar una vista previa de un vínculo que envió. Para obtener más detalles, consulta Vistas previas de vínculos en mensajes de Google Chat.
Responde a las interacciones o envía mensajes proactivos con la API de Google Chat
En lugar de mostrar una acción de complemento, es posible que las apps de Chat deban usar la API de Google Chat para responder a una interacción. Por ejemplo, las apps de Chat deben llamar a la API de Google Chat para realizar cualquiera de las siguientes acciones:
- Enviar mensajes según una programación o sobre cambios en recursos externos Por ejemplo, notificaciones sobre un nuevo problema o caso
- Responder más de 30 segundos después de la interacción Por ejemplo, para responder con un mensaje después de completar una tarea de larga duración
- Enviar un mensaje fuera del espacio en el que se produjo la interacción
- Enviar un mensaje en nombre de un usuario de Chat
Para enviar un mensaje con la API de Chat, debes configurar la autenticación y llamar al método create() en el recurso Message. Para conocer los pasos, consulta
Envía un mensaje con la API de Google Chat.
Temas relacionados
- Compila interfaces de Google Chat
- Cómo responder a comandos rápidos
- Cómo responder a comandos de barra
- Cómo abrir diálogos interactivos
- Cómo recopilar información de los usuarios de Google Chat
- Vistas previas de vínculos en mensajes de Google Chat
- Envía un mensaje con la API de Google Chat