Atualizar a associação de um usuário em um espaço do Google Chat

Neste guia, explicamos como usar o método update() no recurso Membership da API Google Chat para mudar atributos sobre uma associação, como mudar um participante para administrador do espaço ou mudar de administrador para participante.

Se você for um administrador do Google Workspace, poderá chamar o método update() para atualizar a associação 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

Atualizar uma assinatura

Para atualizar uma assinatura de espaço, transmita o seguinte na sua solicitação:

  • Especifique um escopo de autorização:
  • Chame o método UpdateMembership().
  • Transmita membership como uma instância de Membership com o seguinte:
    • O campo name definido como a assinatura a ser atualizada, que inclui um ID do espaço e um ID de membro.
    • Os campos de associação a serem atualizados são definidos com os novos valores.
  • Transmita updateMask para especificar os aspectos da assinatura a serem atualizadas. Ele inclui o seguinte:
    • role: função do usuário em um espaço do Chat, que determina as ações permitidas no espaço. Os valores possíveis são:
      • ROLE_MEMBER: participante do espaço. O usuário tem permissões básicas, como enviar mensagens para o espaço. Nas conversas individuais e em grupo sem nome, todos têm essa função.
      • ROLE_MANAGER: um administrador de espaço. O usuário tem todas as permissões básicas e administrativas que permitem gerenciar o espaço, como adicionar ou remover participantes. Somente compatível com espaços em que spaceType é SPACE (espaços nomeados).

Tornar um participante comum do espaço administrador do espaço como usuário

O exemplo abaixo chama a API Chat usando a autenticação do usuário para tornar um membro normal do espaço um administrador, especificando role como ROLE_MANAGER:

Node.js

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

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

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

  // Initialize request argument(s)
  const request = {
    membership: {
      // Replace SPACE_NAME and MEMBER_NAME here
      name: 'spaces/SPACE_NAME/members/MEMBER_NAME',
      // Replace ROLE_NAME here with ROLE_MEMBER or ROLE_MANAGER
      role: 'ROLE_NAME'
    },
    updateMask: {
      // The field paths to update.
      paths: ['role']
    }
  };

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

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

main().catch(console.error);

Para executar o exemplo, substitua o seguinte:

  • SPACE_NAME: o ID do name do espaço. Para conseguir o ID, chame o método ListSpaces() ou o URL do espaço.
  • MEMBER_NAME: o ID do name da associação. É possível receber o ID chamando o método ListMemberships() ou no corpo da resposta retornado após a criação de uma associação de forma assíncrona com a API Chat.
  • ROLE_NAME: o papel atualizado, ROLE_MANAGER.

A API Google Chat atualiza a associação especificada para um administrador do espaço e retorna uma instância de Membership.

Tornar um administrador do espaço um participante normal como usuário

O exemplo a seguir chama a API Chat usando a autenticação do usuário para tornar um administrador do espaço um participante comum, especificando role como ROLE_MEMBER:

Node.js

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

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

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

  // Initialize request argument(s)
  const request = {
    membership: {
      // Replace SPACE_NAME and MEMBER_NAME here
      name: 'spaces/SPACE_NAME/members/MEMBER_NAME',
      // Replace ROLE_NAME here with ROLE_MEMBER or ROLE_MANAGER
      role: 'ROLE_NAME'
    },
    updateMask: {
      // The field paths to update.
      paths: ['role']
    }
  };

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

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

main().catch(console.error);

Para executar a amostra, substitua o seguinte:

  • SPACE_NAME: o ID do name do espaço. Para conseguir o ID, chame o método ListSpaces() ou o URL do espaço.
  • MEMBER_NAME: o ID do name da associação. É possível receber o ID chamando o método ListMemberships() ou no corpo da resposta retornado após a criação de uma associação de forma assíncrona com a API Chat.
  • ROLE_NAME: o papel atualizado, ROLE_MEMBER.

A API Google Chat atualiza a associação especificada para um administrador do espaço e retorna uma instância de Membership.

Tornar um membro do espaço um administrador do espaço como um app do Chat

A autenticação de apps requer uma aprovação única do administrador.

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 seu 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 a 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 sua chave de API. Para mais detalhes, consulte Como aplicar restrições de chave de API.

Escrever um script que chame a API Chat

O exemplo a seguir chama a API Chat usando a autenticação do app para tornar um membro do espaço comum em administrador do espaço, especificando role como ROLE_MANAGER no body que especifica os atributos de associação atualizados:

Python

  1. No diretório de trabalho, crie um arquivo chamado chat_membership_update_to_manager_app.py.
  2. Inclua o seguinte código em chat_membership_update_to_manager_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 updates a specified space member to change
        it from a regular member to a space manager.
        '''
    
        # 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().patch(
    
            # The membership to update, and the updated role.
            #
            # Replace SPACE with a space name.
            # Obtain the space name from the spaces resource of Chat API,
            # or from a space's URL.
            #
            # Replace MEMBERSHIP with a membership name.
            # Obtain the membership name from the membership of Chat API.
            name='spaces/SPACE/members/MEMBERSHIP',
            updateMask='role',
            body={'role': 'ROLE_MANAGER'}
    
          ).execute()
    
        # Prints details about the updated membership.
        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.

    • MEMBERSHIP: um nome de associação, que pode ser encontrado no método spaces.members.list na API Chat.

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

    python3 chat_membership_update_to_manager_app.py

Tornar um administrador do espaço um participante comum como um app do Chat

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

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 seu 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 será exibida.
    • Clique em Copiar para copiar a 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.

Programar um script que chame a API Chat

O exemplo a seguir chama a API Chat usando a autenticação do app para tornar um administrador de espaço um membro normal, especificando role como ROLE_MEMBER no body que especifica os atributos de associação atualizados:

Python

  1. No diretório de trabalho, crie um arquivo chamado chat_membership_update_to_member_app.py.
  2. Inclua o seguinte código em chat_membership_update_to_member_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 via user credentials,
        then updates a specified space member to change
        it from a regular member to a space manager.
        '''
    
        # 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().patch(
    
            # The membership to update, and the updated role.
            #
            # Replace SPACE with a space name.
            # Obtain the space name from the spaces resource of Chat API,
            # or from a space's URL.
            #
            # Replace MEMBERSHIP with a membership name.
            # Obtain the membership name from the membership of Chat API.
            name='spaces/SPACE/members/MEMBERSHIP',
            updateMask='role',
            body={'role': 'ROLE_MEMBER'}
    
          ).execute()
    
        # Prints details about the updated membership.
        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.

    • MEMBERSHIP: um nome de associação, que pode ser encontrado no método spaces.members.list na API Chat.

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

    python3 chat_membership_update_to_member_app.py

Atualizar assinaturas como administrador do Google Workspace

Se você for um administrador do Google Workspace, poderá chamar o método update() para atualizar as associações 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.