Receber metadados sobre um anexo de mensagem

Neste guia, explicamos como usar o método get no recurso Media da API Google Chat para receber metadados sobre um anexo de mensagens. A resposta é uma instância do recurso Attachment.

Quando o usuário envia uma mensagem para seu app, o Google Chat envia um evento de interação MESSAGE. O evento de interação recebido pelo app inclui um corpo da solicitação, que é o payload JSON que representa o evento de interação, incluindo todos os anexos. Os dados no anexo serão diferentes se for conteúdo enviado por upload (um arquivo local) ou armazenado no Drive. O recurso Media representa um arquivo enviado para o Google Chat, como imagens, vídeos e documentos. O recurso Attachment representa uma instância de mídia (um arquivo) anexada a uma mensagem. O recurso Attachment inclui os metadados sobre o anexo, como o local em que ele é salvo.

Pré-requisitos

Python

  • Python 3.6 ou superior
  • A ferramenta de gerenciamento de pacotes pip
  • As bibliotecas de cliente mais recentes do Google para Python. Para instalar ou atualizar, execute o seguinte na interface de linha de comando:

    pip3 install --upgrade google-api-python-client google-auth-oauthlib google-auth
    
  • Um projeto do Google Cloud com a API Google Chat ativada e configurada. Veja as etapas em Criar um app do Google Chat.
  • Autorização configurada para o app do Chat. O recebimento de uma mensagem requer a autenticação do app com o escopo de autorização chat.bot.

Receber um anexo de mensagem

Para receber metadados de forma assíncrona sobre um anexo de mensagem no Google Chat, transmita o seguinte na solicitação:

Veja como acessar os metadados de um anexo de uma mensagem:

Python

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

    from google.oauth2 import service_account
    from apiclient.discovery import build
    
    # Specify required scopes.
    SCOPES = ['https://www.googleapis.com/auth/chat.bot']
    
    # Specify service account details.
    CREDENTIALS = (
        service_account.Credentials.from_service_account_file('credentials.json')
        .with_scopes(SCOPES)
    )
    
    # Build the URI and authenticate with the service account.
    chat = build('chat', 'v1', credentials=CREDENTIALS)
    
    # Get a Chat message.
    result = chat.spaces().messages().attachments().get(
    
        # The message to get.
        #
        # Replace SPACE with a space name.
        # Obtain the space name from the spaces resource of Chat API,
        # or from a space's URL.
        #
        # Replace MESSAGE with a message name.
        # Obtain the message name from the response body returned
        # after creating a message asynchronously with Chat REST API.
        name='spaces/SPACE/messages/MESSAGE/attachments/ATTACHMENT'
    
      ).execute()
    
    # Print Chat API's response in your command line interface.
    print(result)
    
  3. No código, substitua spaces/SPACE/messages/MESSAGE/attachments/ATTACHMENT pelo nome do anexo da mensagem.

  4. No diretório de trabalho, crie e execute a amostra:

    python3 chat_get_message_attachment.py
    

A API Chat retorna uma instância de Attachment que detalha os metadados sobre o anexo de mensagem especificado.