Criar uma mensagem de texto

Esta página descreve como criar mensagens que aparecem in-line como se fossem digitadas por um usuário. Use mensagens de texto para apresentar informações simples aos usuários. Para mais informações sobre como criar mensagens mais complexas que geram cards no chat, consulte Criar uma mensagem de card.

Pré-requisitos

Para executar os exemplos deste guia, você precisa dos seguintes pré-requisitos:

Python

Anatomia de uma mensagem de texto

Todas as mensagens no Google Chat são representadas como um objeto JSON. O exemplo a seguir é uma mensagem básica que especifica um corpo de texto simples.

{
  "text": "Your pizza delivery is here!"
}

Se postado no Google Chat, este exemplo será renderizado da seguinte maneira:

O app está respondendo com uma mensagem informando que sua entrega de pizza está aqui!

Criar uma mensagem de texto assíncrona

A seção a seguir explica como criar uma mensagem de texto com autenticação de apps e de usuários.

Criar uma mensagem de texto com a autenticação de apps

Veja como criar uma mensagem de texto com autenticação de app:

Python

  1. No diretório de trabalho, crie um arquivo chamado chat_create_text_message_app.py.
  2. Inclua o seguinte código em 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. No código, substitua SPACE por um nome de espaço, que você pode acessar no método spaces.list() na API Chat ou no URL de um espaço.

  4. No diretório de trabalho, crie e execute o exemplo:

    python3 chat_create_text_message_app.py
    

A API Chat retorna uma instância de Message que detalha a mensagem criada.

Criar uma mensagem de texto com a autenticação do usuário

Veja como criar uma mensagem de texto com autenticação de usuário:

Python

  1. No diretório de trabalho, crie um arquivo chamado chat_create_text_message_user.py.
  2. Inclua o seguinte código em chat_create_text_message_user.py:

    from __future__ import print_function
    
    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
    
        # Check for the file token.json. If it exists, use it for authentication.
        # The file token.json stores the user's access and refresh tokens, and is
        # created automatically when the authorization flow completes for the first
        # time.
        if os.path.exists('token.json'):
            creds = Credentials.from_authorized_user_file('token.json', SCOPES)
    
        # If there are no valid credentials available, let the user log in.
        if not creds or not creds.valid:
            if creds and creds.expired and creds.refresh_token:
                creds.refresh(Request())
            else:
                flow = InstalledAppFlow.from_client_secrets_file(
    
                    # The client_secrets.json file gets generated when you create
                    # an OAuth 2.0 Client ID. See Authenticate as a user in the Chat
                    # developer documentation.
                    'client_secrets.json', SCOPES)
    
                creds = flow.run_local_server(port=0)
    
            # Save the credentials for the next run in a file
            # named token.json.
            with open('token.json', 'w') as token:
                token.write(creds.to_json())
    
        # 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. No código, substitua SPACE por um nome de espaço, que você pode acessar no método spaces.list() na API Chat ou no URL de um espaço.

  4. No diretório de trabalho, crie e execute o exemplo:

    python3 chat_create_text_message_user.py
    

A API Chat retorna uma instância de Message que detalha a mensagem criada.

Formatar mensagens de texto em mensagens

O Google Chat permite adicionar formatação básica ao texto da mensagem, incluindo negrito, itálico e tachado. Para formatar o texto, envolva-o com os seguintes símbolos:

Formato Símbolo Exemplo Resultado
Negrito * *olá* Olá
Itálico _ (sublinhado) _olá_ Olá
Tachado ~ olá Olá
fonte monoespaçada ` (acento grave) "Olá" hello
Bloco monoespaço ``` (três aspas) ```
Olá,
World
```
Hello
World

Por exemplo, considere o JSON a seguir:

{
  "text": "Your pizza delivery *has arrived*!\nThank you for using _Pizza Bot!_"
}

Isso coloca uma mensagem como esta no espaço do Chat:

O app com o mesmo texto aparece em negrito.

Essa sintaxe de marcação é a mesma que se aplica às mensagens digitadas pelos usuários. Por isso, ela é diferente da formatação baseada em HTML aplicada ao texto dos cards.

Se você incluir um URL de link simples no texto da mensagem, como http://example.com/, ele será usado pelo Google Chat como o texto do link e terá um hiperlink automaticamente para esse URL.

Para fornecer um texto alternativo para seu link, use a seguinte sintaxe:

Sintaxe Renderização
<https://example.com/|LINK_TEXT> LINK_TEXT

O texto da barra vertical e do link são opcionais, de modo que <https://example.com/> e https://example.com/ sejam equivalentes.

Mensagens que mencionam usuários específicos

Um app de chat pode mencionar um usuário em uma mensagem fornecendo o USER_ID dele na sintaxe a seguir. Para determinar o USER_ID de um usuário, examine o campo sender da mensagem recebida do usuário.

<users/USER_ID>

Esta string é substituída por uma @menção do usuário especificado. Por exemplo, considere o JSON a seguir:

{
    "text": "Hey <users/123456789012345678901>! Thank you for using _Pizza bot!_"
}

Isso produz um resultado como este:

Aplicativo que responde com o nome de usuário de uma pessoa.

Mensagens que mencionam @todos

Use o ID do usuário all para mencionar todos os usuários humanos em um espaço. Por exemplo:

{
    "text": "Important message for <users/all>: Code freeze starts at midnight tonight!"
}