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
- Python 3.6 ou superior
- a ferramenta de gerenciamento de pacotes pip
As bibliotecas de cliente do Google para Python. Instale as bibliotecas de cliente:
pip3 install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib oauth2client
Um app Chat publicado em um espaço do Chat:
- Para criar e publicar um app de chat, consulte Criar um app de chat com o Cloud Functions.
- Para adicionar um app de chat a um espaço do Chat, consulte Adicionar apps a espaços ou conversas no Google Chat.
Autorização configurada para o app Chat:
- A autenticação da conta de serviço é totalmente compatível. Para configurar uma conta de serviço, consulte Autenticar e autorizar como uma conta de serviço.
- Programa de prévia para desenvolvedores do Google Workspace, que concede acesso antecipado a determinados recursos. Para configurar a autenticação do usuário, consulte Autenticar e autorizar usuários (visualização de desenvolvedor). Visualização do desenvolvedor: a autenticação do usuário é suportada como parte do
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:
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
- No diretório de trabalho, crie um arquivo chamado
chat_create_text_message_app.py
. 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)
No código, substitua
SPACE
por um nome de espaço, que você pode acessar no métodospaces.list()
na API Chat ou no URL de um espaço.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
- No diretório de trabalho, crie um arquivo chamado
chat_create_text_message_user.py
. 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()
No código, substitua
SPACE
por um nome de espaço, que você pode acessar no métodospaces.list()
na API Chat ou no URL de um espaço.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á | |
fonte monoespaçada | ` (acento grave) | "Olá" | hello |
Bloco monoespaço | ``` (três aspas) | ``` Olá, World ``` |
Hello |
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:
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.
Incluir links no texto da mensagem
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:
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!"
}