Remover um participante de um espaço

Este guia explica como usar o método delete() no recurso Membership da API Google Chat para remover membros de um espaço, também conhecido como excluir uma associação. Não é possível remover administradores do espaço se eles forem os únicos. Atribua outro usuário como administrador do espaço antes de remover essas assinaturas.

Se você for administrador do Google Workspace, poderá remover usuários, Grupos do Google ou apps do Chat de qualquer espaço na sua organização do Google Workspace.

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

Pré-requisitos

Node.js

Remover um participante de um espaço como usuário

Para remover um usuário, grupo do Google ou app Chat de um espaço com autenticação do usuário, transmita o seguinte na sua solicitação:

  • Especifique o escopo de autorização chat.memberships. O usuário autorizado precisa ter permissão para remover o usuário ou o grupo do Google do espaço. Para remover um app de chat, especifique o escopo de autorização chat.memberships.app. Os apps só podem excluir a própria associação, não a de outros apps. Como prática recomendada, escolha o escopo mais restritivo que ainda permite que o app funcione.
  • Chame o método DeleteMembership().
  • Transmita o name da assinatura a ser excluída. Se a assinatura pertencer ao único administrador de um espaço, atribua outro usuário como administrador antes de excluir a assinatura.

Veja como excluir uma assinatura com autenticação do usuário:

Node.js

chat/client-libraries/cloud/delete-space-user-cred.js
import {createClientWithUserCredentials} from './authentication-utils.js';

const USER_AUTH_OAUTH_SCOPES = ['https://www.googleapis.com/auth/chat.delete'];

// This sample shows how to delete a space with user credential
async function main() {
  // Create a client
  const chatClient = await createClientWithUserCredentials(USER_AUTH_OAUTH_SCOPES);

  // Initialize request argument(s)
  const request = {
    // Replace SPACE_NAME here
    name: 'spaces/SPACE_NAME'
  };

  // Make the request
  const response = await chatClient.deleteSpace(request);

  // Handle the response
  console.log(response);
}

main().catch(console.error);

Para executar este exemplo, substitua o seguinte:

  • SPACE_NAME: o ID do name do espaço. Você pode conseguir o ID chamando o método ListSpaces() ou pelo URL do espaço.
  • MEMBER_NAME: o ID do name do membro. Para conseguir o ID, chame o método ListMemberships().

Se bem-sucedido, 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_NAME/members/MEMBER_NAME",
    "state": "NOT_A_MEMBER"
}

Remover um participante de um espaço como um app de chat

A autenticação do app exige uma única aprovação do administrador.

Para remover um usuário, grupo do Google ou app Chat de um espaço com autenticação de app, transmita o seguinte na sua solicitação:

  • Especifique o escopo de autorização chat.app.memberships. A exclusão da participação de um administrador de espaço só é permitida em espaços criados por apps do Chat.
  • Chame o método delete no recurso membership.
  • Transmita o name da assinatura a ser excluída. Se a assinatura pertencer ao único administrador em um espaço, atribua outro usuário como administrador antes de excluir a associação.

Criar uma chave de API

Para chamar um método da prévia para desenvolvedores da API, use uma versão não pública da prévia para desenvolvedores do documento de descoberta da API. Para autenticar a solicitação, é necessário transmitir uma chave de API.

Para criar a chave de API, abra o projeto do Google Cloud do app e faça o seguinte:

  1. No console do Google Cloud, acesse Menu > APIs e serviços > Credenciais.

    Ir para Credenciais

  2. Clique em Criar credenciais > Chave de API.
  3. Sua nova chave de API vai aparecer.
    • Clique em Copiar para copiar sua chave de API e usá-la no código do app. A chave de API também pode ser encontrada na seção "Chaves de API" das credenciais do projeto.
    • Clique em Restringir chave para atualizar as configurações avançadas e limitar o uso da chave de API. Para mais detalhes, consulte Como aplicar restrições de chave de API.

Escrever um script que chame a API Chat

Veja como excluir uma assinatura com a autenticação de apps:

Python

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

    from google.oauth2 import service_account
    from apiclient.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.app.memberships"]
    
    def main():
        '''
        Authenticates with Chat API using app authentication,
        then deletes the specified membership.
        '''
    
        # Specify service account details.
        creds = (
            service_account.Credentials.from_service_account_file('credentials.json')
            .with_scopes(SCOPES)
        )
    
        # Build a service endpoint for Chat API.
        chat = build('chat', 'v1', credentials=creds, discoveryServiceUrl='https://chat.googleapis.com/$discovery/rest?version=v1&labels=DEVELOPER_PREVIEW&key=API_KEY')
    
        # 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:

    • API_KEY: a chave de API criada para criar o endpoint de serviço da API Chat.

    • 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 associação, que pode ser encontrado no método spaces.members.list da API Chat. Para excluir a associação de um app, substitua MEMBER por app.

  4. No diretório de trabalho, crie e execute o exemplo:

    python3 chat_membership_delete_app.py

Se bem-sucedido, 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"
}

Limitações e considerações

Remover usuários ou Grupos do Google de um espaço como administrador do Google Workspace

Se você for um administrador do Google Workspace, poderá chamar o método DeleteMembership() para remover usuários, Grupos do Google ou apps do Chat de qualquer espaço na sua organização do Google Workspace.

Para chamar esse método como administrador do Google Workspace, faça o seguinte:

Para mais informações e exemplos, consulte Gerenciar espaços do Google Chat como administrador do Google Workspace.