Criar uma mensagem de texto

Nesta página, explicamos como criar e enviar mensagens de texto como um app do Google Chat. Para mais informações sobre mensagens, consulte Visão geral das mensagens do Google Chat.

Pré-requisitos

Node.js

Python

Apps Script

Criar mensagens de texto

Nesta seção, descrevemos como criar mensagens de texto de duas maneiras: respondendo a uma interação do usuário ou chamando a API Google Chat de forma assíncrona.

Responder a um usuário

Neste exemplo, o app do Chat cria e envia uma mensagem de texto sempre que é adicionado a um espaço. Para saber mais sobre as práticas recomendadas para integrar usuários, consulte Começar a usar uma integração útil para pessoas e espaços.

Para enviar uma mensagem de texto quando um usuário adiciona seu app do Chat a um espaço, o app do Chat responde a um evento de interação ADDED_TO_SPACE.

Para responder a eventos de interação do ADDED_TO_SPACE com uma mensagem de texto, use este 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`.'
  }
}

O exemplo de código retorna a seguinte mensagem de texto:

Exemplo de mensagem de integração.

Chamar a API Google Chat

Na seção a seguir, explicamos como criar uma mensagem de texto chamando assincronamente a API Google Chat.

Chamar a API Chat de forma assíncrona exige autenticação. Quando um app do Chat cria uma mensagem de texto, ele pode usar a autenticação de app (para enviar a mensagem como o app do Chat) ou a autenticação do usuário (para enviar a mensagem em nome de um usuário). Nesta seção, explicamos como enviar mensagens de texto usando qualquer um dos tipos de autenticação.

Para configurar a autenticação e saber como criar mensagens de forma assíncrona, consulte o guia da API Chat.

Criar uma mensagem de texto com autenticação de app

Veja como enviar uma mensagem de texto com a autenticação de aplicativos:

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(
        '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)
    
  3. No código, substitua SPACE por um nome de espaço, que pode ser encontrado 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 enviada.

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

Veja como enviar uma mensagem de texto com a autenticação do 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:

    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. No código, substitua SPACE por um nome de espaço, que pode ser encontrado no método spaces.list() da 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 enviada.

Resolver problemas

Quando um app ou card do Google Chat retorna um erro, a interface do Chat mostra uma mensagem dizendo "Ocorreu um erro" ou "Não foi possível processar sua solicitação". Às vezes, a IU do Chat não mostra nenhuma mensagem de erro, mas o app ou o card do Chat produz um resultado inesperado. Por exemplo, uma mensagem de card pode não aparecer.

Embora uma mensagem de erro talvez não apareça na IU do Chat, mensagens de erro descritivas e dados de registro estão disponíveis para ajudar a corrigir erros quando o registro de erros nos apps do Chat está ativado. Se precisar de ajuda para ver, depurar e corrigir erros, consulte Resolver problemas e corrigir erros do Google Chat.