Remover um usuário ou um app do Google Chat de um espaço

Neste guia, explicamos como usar o método delete no recurso membership da API Google Chat para remover um usuário ou app do Chat de um espaço, também conhecido como exclusão de associação. Não será possível remover os administradores se eles forem os únicos administradores de um espaço. Atribua outro usuário como administrador do espaço antes de remover essas assinaturas.

O recurso Membership representa se um usuário humano ou app do Google Chat foi convidado, parte de ou ausente de um espaço.

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
    
  • 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. A exclusão de uma assinatura requer a autenticação do usuário com o escopo de autorização chat.memberships ou chat.memberships.app de um usuário que tenha permissão para excluir a assinatura especificada.

Remover um usuário ou um app do Chat de um espaço

Para remover um usuário ou um app do Chat de um espaço:

  • Para remover um usuário, especifique o escopo de autorização chat.memberships. Para remover um app do Chat, especifique o escopo de autorização chat.memberships.app. Os apps só podem excluir a própria assinatura, e não a de outros apps. Como prática recomendada, escolha o escopo mais restritivo que ainda permita o funcionamento do app.
  • Chame o método delete no recurso membership.
  • Transmita o name da assinatura a ser excluída. Se a associação pertencer ao único administrador do espaço em um espaço, atribua outro usuário como administrador antes de excluir a assinatura.

Saiba como excluir uma assinatura:

Python

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

    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # 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.memberships.app"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then deletes the specified membership.
        '''
    
        # 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().members().delete(
    
            # The membership to delete.
            #
            # Replace SPACE with a space name.
            # Obtain the space name from the spaces resource of Chat API,
            # or from a space's URL.
            #
            # Replace MEMBER with a membership name.
            # Obtain the membership name from the memberships resource of
            # Chat API. To delete a Chat app's membership, replace MEMBER
            # with app; an alias for the app calling the API.
            name='spaces/SPACE/members/MEMBER'
    
        ).execute()
    
        # Print Chat API's response in your command line interface.
        # When deleting a membership, the response body is empty.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. No código, substitua o seguinte:

    • SPACE: um nome de espaço, que pode ser encontrado no método spaces.list na API Chat ou no URL de um espaço.

    • MEMBER: um nome de assinatura, que pode ser obtido no método spaces.members.list na API Chat. Para excluir a assinatura de um app, substitua MEMBER por app.

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

    python3 chat_membership_delete.py
    

Se a solicitação for bem-sucedida, o corpo da resposta retornará a associação com 'state': 'NOT_A_MEMBER', indicando que o membro não está mais no espaço.

{
    "name": "spaces/SPACE/members/MEMBER",
    "state": "NOT_A_MEMBER"
}