Fixar ou liberar mensagens em espaços do Google Chat

Com o recurso MessagePin na API Chat, seu app pode fixar e desafixar mensagens, além de receber uma lista de todas as mensagens fixadas nos espaços do Google Chat. As mensagens fixadas ficam visíveis na interface do Chat para todos os participantes do espaço. Essa API ajuda seu app a gerenciar mensagens fixadas em nome de um usuário.

Para saber como os usuários fixam mensagens em espaços, consulte Fixar mensagens, arquivos e links em espaços e mensagens.

Pré-requisitos

Node.js

Considerações

  • Só é possível fixar mensagens que já existem em um espaço. Não é possível criar e fixar uma nova mensagem na mesma solicitação.
  • Não é possível fixar mensagens visíveis apenas para você. Por exemplo, não é possível fixar mensagens particulares recebidas de um app.
  • Cada espaço do Chat pode ter até 100 mensagens fixadas. Se o app tentar fixar uma 101ª mensagem, a API vai retornar um erro.

Fixar uma mensagem

Para fixar uma mensagem com autenticação do usuário, transmita o seguinte na sua solicitação:

  • Especifique o escopo de autorização chat.spaces.pins ou chat.spaces.
  • Chame messagePins.create.
  • Especifique o parent (nome do espaço) e forneça um body com o nome do recurso message da mensagem original.

O exemplo a seguir fixa uma mensagem em um espaço:

Python

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

    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # Define your app's authorization scopes.
    SCOPES = ["https://www.googleapis.com/auth/chat.spaces.pins"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then pins a message in a space.
        '''
    
        # Authenticate with Google Workspace and get user authorization.
        flow = InstalledAppFlow.from_client_secrets_file('credentials.json', SCOPES)
        creds = flow.run_local_server()
    
        # Build a service endpoint for Chat API.
        service = build('chat', 'v1', credentials=creds)
    
        # Pin a message.
        result = service.spaces().messagePins().create(
            # The space to pin the message in.
            #
            # Replace SPACE with a space ID or name.
            # Obtain the space name from the spaces resource of Chat API,
            # or from a space's URL.
            parent='spaces/SPACE',
    
            # The message to pin.
            body={
                'message': 'spaces/SPACE/messages/MESSAGE'
            }
        ).execute()
    
        # Print Chat API's response in your command line interface.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. No código, substitua o seguinte:

    • SPACE: o ID do name do espaço.
    • MESSAGE: o ID do name da mensagem.
  4. No diretório de trabalho, crie e execute a amostra:

    python3 chat_pin_message.py

Desafixar uma mensagem

Para desfixar uma mensagem com autenticação do usuário, transmita o seguinte na sua solicitação:

  • Especifique o escopo de autorização chat.spaces.pins ou chat.spaces.
  • Chame messagePins.delete.
  • Defina name como o nome do recurso do MessagePin a ser excluído.

Veja como desafixar uma mensagem:

Python

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

    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # Define your app's authorization scopes.
    SCOPES = ["https://www.googleapis.com/auth/chat.spaces.pins"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then unpins a message from a space.
        '''
    
        # Authenticate with Google Workspace and get user authorization.
        flow = InstalledAppFlow.from_client_secrets_file('credentials.json', SCOPES)
        creds = flow.run_local_server()
    
        # Build a service endpoint for Chat API.
        service = build('chat', 'v1', credentials=creds)
    
        # Unpin a message.
        result = service.spaces().messagePins().delete(
            # The resource name of the message pin to delete.
            #
            # Replace SPACE with a space ID or name, and MESSAGE with the message ID.
            name='spaces/SPACE/messagePins/MESSAGE'
        ).execute()
    
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. No código, substitua o seguinte:

    • SPACE: o ID do name do espaço.
    • MESSAGE: o ID do name da mensagem.
  4. No diretório de trabalho, crie e execute a amostra:

    python3 chat_unpin_message.py

Receber uma lista de mensagens fixadas

Para receber uma lista de mensagens fixadas nos espaços a que você tem acesso, use a autenticação de usuário e transmita o seguinte na sua solicitação:

  • Especifique um dos escopos de leitura: chat.spaces.pins.readonly, chat.spaces.readonly, chat.spaces.pins ou chat.spaces.
  • Chame messagePins.list.
  • Especifique parent como o nome do espaço para buscar as mensagens fixadas.

Confira como listar as mensagens fixadas:

Python

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

    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # Define your app's authorization scopes.
    SCOPES = ["https://www.googleapis.com/auth/chat.spaces.pins.readonly"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then lists pinned messages in a space.
        '''
    
        # Authenticate with Google Workspace and get user authorization.
        flow = InstalledAppFlow.from_client_secrets_file('credentials.json', SCOPES)
        creds = flow.run_local_server()
    
        # Build a service endpoint for Chat API.
        service = build('chat', 'v1', credentials=creds)
    
        # List pinned messages.
        result = service.spaces().messagePins().list(
            # The space to list pinned messages from.
            #
            # Replace SPACE with a space ID or name.
            parent='spaces/SPACE'
        ).execute()
    
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. No código, substitua SPACE pelo ID do espaço no name do espaço.

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

    python3 chat_list_pinned_messages.py