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

Este guia explica como usar o update() método no recurso Membership da API Google Chat para mudar atributos de uma assinatura, como mudar um participante de um espaço para um administrador ou proprietário.

Se você for um administrador do Google Workspace, poderá chamar o método update() para atualizar a assinatura 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, faz parte ou está ausente de um espaço.

Pré-requisitos

Node.js

  • Uma conta do Google Workspace Business ou Enterprise com acesso ao Google Chat.

Atualizar uma assinatura

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

  • Especifique um escopo de autorização:
    • Com a autenticação do usuário, especifique o escopo de autorização chat.memberships.
    • Com a autenticação do app, especifique o escopo de autorização chat.app.memberships. Ao atualizar uma assinatura com a autenticação do app, só é possível atualizar assinaturas em espaços criados por apps do Chat. A autenticação do app exige a aprovação única do administrador.
  • Chame o UpdateMembership() método.
  • 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 de espaço e um ID do participante.
    • Os campos de assinatura a serem atualizados definidos como os novos valores.
  • Transmita updateMask para especificar os aspectos da assinatura a serem atualizados. Ele inclui o seguinte:
    • role: o papel do usuário em um espaço do Chat, que determina as ações permitidas no espaço. Para explicações detalhadas sobre permissões, consulte MembershipRole na documentação de referência da API Chat. Os valores possíveis são:
      • ROLE_MEMBER: um participante do espaço. Na interface do Chat, esse papel é chamado de Participante.
      • ROLE_ASSISTANT_MANAGER: um administrador do espaço. Na interface do Chat, esse papel é chamado de Administrador.
      • ROLE_MANAGER: um proprietário do espaço. Na interface do Chat, esse papel é chamado de Proprietário.

Mudar um participante para um proprietário (autenticação do usuário)

O exemplo a seguir chama a API Chat usando a autenticação do usuário para tornar um participante normal do espaço um proprietário do espaço, 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);
}

await main();

Para executar a amostra, substitua o seguinte:

  • SPACE_NAME: o ID do espaço's name. Você pode receber o ID chamando o ListSpaces() método ou no URL do espaço.
  • MEMBER_NAME: o ID do name da assinatura. Você pode receber o ID chamando o ListMemberships() método ou no corpo da resposta retornado após criar uma assinatura de forma assíncrona com a API Chat.
  • ROLE_NAME: o papel atualizado, ROLE_MANAGER. Você pode definir esse valor como qualquer valor de MembershipRole. Por exemplo, para tornar o participante normal um administrador do espaço, mude ROLE_NAME para ROLE_ASSISTANT_MANAGER.

A API Google Chat atualiza a assinatura especificada para um proprietário do espaço e retorna uma instância de Membership.

Mudar um proprietário para um participante (autenticação do usuário)

O exemplo a seguir chama a API Chat usando a autenticação do usuário para tornar um proprietário do espaço um participante normal do espaço, 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);
}

await main();

Para executar a amostra, substitua o seguinte:

  • SPACE_NAME: o ID do espaço's name. Você pode receber o ID chamando o ListSpaces() método ou no URL do espaço.
  • MEMBER_NAME: o ID do name da assinatura. Você pode receber o ID chamando o ListMemberships() método ou no corpo da resposta retornado após criar uma assinatura de forma assíncrona com a API Chat.
  • ROLE_NAME: o papel atualizado, ROLE_MEMBER.

A API Google Chat atualiza a assinatura especificada para um proprietário do espaço e retorna uma instância de Membership.

Mudar um participante para um proprietário (autenticação do app do Chat)

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

Escrever um script que chama a API Chat

O exemplo a seguir chama a API Chat usando a autenticação do app para tornar um participante normal do espaço um proprietário do espaço, especificando role como ROLE_MANAGER no body que especifica os atributos de assinatura atualizados:

Python

  1. No diretório de trabalho, crie um arquivo chamado chat_membership_update_to_owner_app.py.
  2. Inclua o código a seguir em chat_membership_update_to_owner_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 owner.
        '''
    
        # 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)
    
        # 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',
    
            # Replace ROLE with a MembershipRole value.
            # Obtain the MembershipRole values from the membership of Chat API.
            body={'role': 'ROLE'}
    
          ).execute()
    
        # Prints details about the updated membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. No código, substitua o seguinte:

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

    • MEMBERSHIP: um nome de assinatura, que pode ser obtido no spaces.members.list método na API Chat.

    • ROLE: o papel atualizado, ROLE_MANAGER. Você pode definir esse valor como qualquer valor de MembershipRole. Por exemplo, para tornar o participante normal um administrador do espaço, mude ROLE para ROLE_ASSISTANT_MANAGER em vez disso.

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

    python3 chat_membership_update_to_owner_app.py

Mudar um proprietário para um participante (autenticação do app do Chat)

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

Escrever um script que chama a API Chat

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

Python

  1. No diretório de trabalho, crie um arquivo chamado chat_membership_update_to_member_app.py.
  2. Inclua o código a seguir 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 owner to change
        it to a regular member.
        '''
    
        # 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)
    
        # 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:

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

    • MEMBERSHIP: um nome de assinatura, que pode ser obtido no spaces.members.list método na API Chat.

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

    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 assinaturas 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.