En esta página, se describe cómo crear mensajes que aparecen intercalados como si los estuviera escribiendo un usuario. Usar mensajes de texto para presentar información simple a los usuarios Para obtener información sobre cómo crear mensajes más complejos que generen tarjetas en el chat, consulta Cómo crear un mensaje de tarjeta.
Requisitos previos
Para ejecutar los ejemplos de esta guía, necesitas los siguientes requisitos previos:
Python
- Python 3.6 o superior
- La herramienta de administración de paquetes pip
Las bibliotecas cliente de Google para Python. Instala las bibliotecas cliente:
pip3 install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib oauth2client
Una app de Chat publicada que tenga membresía en un espacio de Chat:
- Para crear y publicar una app de Chat, consulta Compila una app de Google Chat con Cloud Functions.
- Para agregar una app de Chat a un espacio de Chat, consulta Agrega apps a espacios o conversaciones en Google Chat.
Autorización configurada para la app de Chat:
- Para configurar una cuenta de servicio, consulta Cómo autenticar y autorizar como una cuenta de servicio.
- Para configurar la autenticación de usuarios, consulta Autentica y autoriza usuarios.
Anatomía de un mensaje de texto
Todos los mensajes de Google Chat se representan como un objeto JSON. El siguiente ejemplo es un mensaje básico que especifica un cuerpo de texto simple:
{
"text": "Your pizza delivery is here!"
}
Si se publica en Google Chat, este ejemplo se ve de la siguiente manera:
Cómo crear un mensaje de texto asíncrono
En la siguiente sección, se explica cómo crear un mensaje de texto con la autenticación de la app y la del usuario.
Cómo crear un mensaje de texto con la autenticación de la app
A continuación, te indicamos cómo crear un mensaje de texto con la autenticación de apps:
Python
- En tu 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( 'service_account.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 un nombre de espacio, que puedes obtener del métodospaces.list()
en la API de Chat o de la URL de un espacio.En tu directorio de trabajo, compila y ejecuta la muestra:
python3 chat_create_text_message_app.py
La API de Chat muestra una instancia de Message
que detalla el mensaje que se creó.
Crea un mensaje de texto con la autenticación de usuarios
A continuación, te indicamos cómo crear un mensaje de texto con la autenticación de usuarios:
Python
- En tu 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 un nombre de espacio, que puedes obtener del métodospaces.list()
en la API de Chat o de la URL de un espacio.En tu directorio de trabajo, compila y ejecuta la muestra:
python3 chat_create_text_message_user.py
La API de Chat muestra una instancia de Message
que detalla el mensaje que se creó.
Cómo dar formato a los textos en mensajes
Google Chat te permite agregar un formato básico al texto del mensaje, como negrita, cursiva y tachado. Para darle formato al texto, únelo con los siguientes símbolos:
Formato | Símbolo | Ejemplo | Resultado |
---|---|---|---|
Negrita | * | *hola* | hola |
Cursiva | _ (guion bajo) | _hola_ | hola |
Tachado | ~ | ~hola~ | |
Monoespacio | ` (comilla inversa) | “hola” | hello |
Bloque monoespaciada | ``` (tres comillas inversas) | ``` Hola mundo ``` |
Hello |
Por ejemplo, considera el siguiente JSON:
{
"text": "Your pizza delivery *has arrived*!\nThank you for using _Pizza Bot!_"
}
Se colocará un mensaje como este en el espacio de Chat:
Esta sintaxis de lenguaje de marcado de texto es la misma que se aplica a los mensajes que escriben los usuarios, por lo que es diferente del formato basado en HTML que se aplica al texto dentro de las tarjetas.
Incluir vínculos en el texto del mensaje
Si incluyes una URL de vínculo sin formato en el texto del mensaje, como http://example.com/
, Google Chat la usará como texto del vínculo y la convertirá automáticamente en un hipervínculo a la URL especificada.
A fin de proporcionar texto de vínculo alternativo, usa la siguiente sintaxis:
Sintaxis | Renderización |
---|---|
<https://example.com/|LINK_TEXT> |
LINK_TEXT |
El texto de la barra vertical y el vínculo son opcionales, por lo que <https://example.com/>
y https://example.com/
son equivalentes.
Mensajes que @mencionen a usuarios específicos
Una app de Chat puede @mencionar a un usuario en un mensaje si proporciona su USER_ID
en la siguiente sintaxis. Para determinar el USER_ID de un usuario, examina el campo sender
del mensaje entrante del usuario.
<users/USER_ID>
Esta string se sustituye por una @mención del usuario especificado. Por ejemplo, considera el siguiente JSON:
{
"text": "Hey <users/123456789012345678901>! Thank you for using _Pizza bot!_"
}
Esto produce un resultado como el siguiente:
Mensajes que @mencionen a todos los usuarios
Puedes usar el ID de usuario all
para @mencionar a todos los usuarios humanos en un espacio. Por ejemplo:
{
"text": "Important message for <users/all>: Code freeze starts at midnight tonight!"
}