En esta página, se explica cómo crear y enviar mensajes de texto como una app de Google Chat. Para obtener más información sobre los mensajes, consulta la descripción general de los mensajes de Google Chat.
Requisitos previos
Node.js
- Una cuenta de Google Workspace con acceso a Google Chat
- Una app de Chat. Para compilar una app de Chat, sigue esta guía de inicio rápido.
Python
- Una cuenta de Google Workspace con acceso a Google Chat
- Una app de Chat. Para compilar una app de Chat, sigue esta guía de inicio rápido.
Apps Script
- Una cuenta de Google Workspace con acceso a Google Chat
- Una app de Chat. Para compilar una app de Chat, sigue esta guía de inicio rápido.
Crear mensajes de texto
En esta sección, se describe cómo crear mensajes de texto de dos maneras: respondiendo a una interacción del usuario y llamando a la API de Google Chat de forma asíncrona.
Responde a un usuario
En este ejemplo, tu app de Chat crea y envía un mensaje de texto cada vez que se agrega a un espacio. Si quieres obtener información sobre las prácticas recomendadas para la integración de usuarios, consulta Haz que las personas y los espacios comiencen con una integración útil.
Para enviar un mensaje de texto cuando un usuario agrega tu app de Chat a un espacio, esta responde a un evento de interacción ADDED_TO_SPACE
.
Para responder a los eventos de interacción ADDED_TO_SPACE
con un mensaje de texto, usa
el siguiente código:
Node.js
/**
* 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. An onboarding message that
* introduces the app and helps people get started with it.
*/
exports.onMessage = function onMessage(req, res) {
if (req.method === 'GET' || !req.body.message) {
res.send(
'Hello! This function is meant to be used in a Google Chat space.');
}
// Send an onboarding message when added to a Chat space
if(req.body.type === 'ADDED_TO_SPACE') {
res.json({
'text': 'Hi, Scheduler 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. An onboarding message that
* introduces the app and helps people get started with it.
*/
function onAddToSpace(event) {
return {
'text': 'Hi, Scheduler 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:
Llama a la API de Google Chat
En la siguiente sección, se explica cómo crear un mensaje de texto llamando de forma asíncrona a la API de Google Chat.
Llamar a la API de Chat de forma asíncrona requiere autenticación. Cuando una app de Chat crea un mensaje de texto, esta puede usar la autenticación de la app (para enviar el mensaje como la app de Chat) o la autenticación del usuario (para enviar el mensaje en nombre de un usuario). En esta sección, se explica cómo enviar mensajes de texto con cualquier tipo de autenticación.
Para configurar la autenticación y obtener información sobre cómo crear mensajes de forma asíncrona, consulta la guía de la API de Chat.
Cómo crear un mensaje de texto con la autenticación de la app
A continuación, te indicamos cómo enviar un mensaje de texto con la autenticación de la app:
Python
- En el directorio de trabajo, crea un archivo llamado
chat_create_text_message_app.py
. Incluye el siguiente código en
chat_create_text_message_app.py
:from httplib2 import Http from oauth2client.service_account import ServiceAccountCredentials from apiclient.discovery import build # Specify required scopes. SCOPES = ['https://www.googleapis.com/auth/chat.bot'] # Specify service account details. CREDENTIALS = ServiceAccountCredentials.from_json_keyfile_name( 'credentials.json', SCOPES) # Build the URI and authenticate with the service account. chat = build('chat', 'v1', http=CREDENTIALS.authorize(Http())) # Create a Chat message. result = chat.spaces().messages().create( # The space to create the message in. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. parent='spaces/SPACE', # The message to create. body={'text': 'Hello, world!'} ).execute() print(result)
En el código, reemplaza
SPACE
por el nombre de un espacio, que puedes obtener del métodospaces.list()
en la API de Chat, o bien desde la URL de un espacio.En el directorio de trabajo, compila y ejecuta la muestra:
python3 chat_create_text_message_app.py
La API de Chat muestra una instancia de Message
en la que se detalla el mensaje que se envía.
Cómo crear un mensaje de texto con la autenticación de usuario
A continuación, te indicamos cómo enviar un mensaje de texto con la autenticación de usuarios:
Python
- En el directorio de trabajo, crea un archivo llamado
chat_create_text_message_user.py
. Incluye el siguiente código en
chat_create_text_message_user.py
:import os.path from google.auth.transport.requests import Request from google.oauth2.credentials import Credentials from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build from googleapiclient.errors import HttpError # Define your app's authorization scopes. # When modifying these scopes, delete the file token.json, if it exists. SCOPES = ["https://www.googleapis.com/auth/chat.messages.create"] def main(): ''' Authenticates with Chat API via user credentials, then creates a text message in a Chat space. ''' # Start with no credentials. creds = None # Authenticate with Google Workspace # and get user authorization. flow = InstalledAppFlow.from_client_secrets_file( 'client_secrets.json', SCOPES) creds = flow.run_local_server() # Build a service endpoint for Chat API. chat = build('chat', 'v1', credentials=creds) # Use the service endpoint to call Chat API. result = chat.spaces().messages().create( # The space to create the message in. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. parent='spaces/SPACE', # The message to create. body={'text': 'Hello, world!'} ).execute() # Prints details about the created membership. print(result) if __name__ == '__main__': main()
En el código, reemplaza
SPACE
por el nombre de un espacio, que puedes obtener del métodospaces.list()
en la API de Chat o desde la URL de un espacio.En el directorio de trabajo, compila y ejecuta la muestra:
python3 chat_create_text_message_user.py
La API de Chat muestra una instancia de Message
en la que se detalla el mensaje que se envía.
Solución de problemas
Cuando una app de Google Chat o una tarjeta muestran 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 producen 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 apps de chat. Si necesitas ayuda para ver, depurar y corregir errores, consulta Cómo solucionar problemas de Google Chat.
Temas relacionados
- Da formato a un mensaje: Obtén información sobre cómo dar formato al texto en los mensajes.
- Recibir un mensaje: Obtén detalles sobre un mensaje, como cuándo se envió o lo que dice.
- Enumerar mensajes: Consulta una lista paginada y filtrable de mensajes en un espacio.
- Actualizar un mensaje: Cambia los atributos del mensaje, como lo que dice. También puedes agregar texto a un mensaje de tarjeta o una tarjeta a un mensaje de texto.
- Borrar un mensaje: Quita un mensaje de un espacio.
- Identifica usuarios en los mensajes de Google Chat