Cómo crear un mensaje de texto

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

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:

La app responde con un mensaje que indica que llegó tu pizza.

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

  1. En tu directorio de trabajo, crea un archivo llamado chat_create_text_message_app.py.
  2. 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)
    
  3. En el código, reemplaza SPACE por un nombre de espacio, que puedes obtener del método spaces.list() en la API de Chat o de la URL de un espacio.

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

  1. En tu directorio de trabajo, crea un archivo llamado chat_create_text_message_user.py.
  2. 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()
    
  3. En el código, reemplaza SPACE por un nombre de espacio, que puedes obtener del método spaces.list() en la API de Chat o de la URL de un espacio.

  4. 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~ hola
Monoespacio ` (comilla inversa) “hola” hello
Bloque monoespaciada ``` (tres comillas inversas) ```
Hola
mundo
```
Hello
World

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:

La app, que resuena con el texto, quedó en negrita

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.

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:

App que responde con el nombre de usuario de una persona.

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!"
}