Este guia explica como usar o método
update()
no recurso Membership da API Google Chat para mudar atributos
de uma associação, como transformar um membro em administrador ou
proprietário de um espaço.
Se você for admin do Google Workspace, poderá chamar o método update() para atualizar a participaçã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 para um espaço,
faz parte dele ou não está presente.
Pré-requisitos
Node.js
- Uma conta do Google Workspace Business ou Enterprise com acesso ao Google Chat.
- Configure seu ambiente:
- Crie um projeto do Google Cloud.
- Configure a tela de permissão OAuth.
- Ative e configure a API Google Chat com um nome, ícone e descrição para seu app do Chat.
- Instale a biblioteca de cliente do Cloud do Node.js.
- Crie credenciais de acesso com base na forma como você quer fazer a autenticação na solicitação da API Google Chat:
- Para autenticar como um usuário do Chat,
crie credenciais de ID do cliente OAuth e salve-as como um arquivo JSON chamado
credentials.jsonno seu diretório local. - Para autenticar como o app Chat,
crie credenciais de
conta de serviço e salve-as como um arquivo JSON chamado
credentials.json.
- Para autenticar como um usuário do Chat,
crie credenciais de ID do cliente OAuth e salve-as como um arquivo JSON chamado
- Escolha um escopo de autorização com base em se você quer autenticar como um usuário ou o app Chat.
Atualizar uma assinatura
Para atualizar uma associação a um espaço, transmita o seguinte na sua 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 de app,
especifique o escopo de autorização
chat.app.memberships. Ao atualizar uma assinatura com autenticação de app, só é possível atualizar assinaturas em espaços criados por apps do Chat. A autenticação do app exige uma única aprovação do administrador.
- Com a autenticação do usuário,
especifique o escopo de autorização
- Chame o método
UpdateMembership(). - Transmita
membershipcomo uma instância deMembershipcom o seguinte:- O campo
namedefinido como a assinatura a ser atualizada, que inclui um ID do espaço e um ID do participante. - Os campos de associação a serem atualizados definidos com os novos valores.
- O campo
- Transmita
updateMaskpara especificar os aspectos da assinatura a serem atualizados, incluindo o seguinte:role: a função do usuário em um espaço do Chat, que determina as ações permitidas no espaço. Para explicações detalhadas sobre as permissões, consulteMembershipRolena documentação de referência da API Chat. Os valores possíveis são:ROLE_MEMBER: um membro do espaço. Na interface do Chat, essa função é chamada de Membro.ROLE_ASSISTANT_MANAGER: um admin do espaço. Na interface do Chat, essa função é chamada de Gerente.ROLE_MANAGER: um proprietário do espaço. Na interface de chat, essa função é chamada de Proprietário.
Mudar um participante para proprietário (autenticação do usuário)
O exemplo a seguir chama a API Chat usando a autenticação de usuário para transformar um membro comum em proprietário do espaço especificando role como ROLE_MANAGER:
Node.js
Para executar a amostra, substitua o seguinte:
SPACE_NAME: o ID donamedo espaço. Você pode conseguir o ID chamando o métodoListSpaces()ou no URL do espaço.MEMBER_NAME: o ID donameda assinatura. Você pode receber o ID chamando o métodoListMemberships()ou no corpo da resposta retornado após criar uma assinatura de forma assíncrona com a API Chat.ROLE_NAME: a função atualizada,ROLE_MANAGER. É possível definir esse valor como qualquer valor deMembershipRole. Por exemplo, para transformar um participante em administrador do espaço, mudeROLE_NAMEparaROLE_ASSISTANT_MANAGER.
A API Google Chat atualiza a associação especificada para um proprietário do espaço e retorna uma instância de Membership.
Mudar um proprietário para participante (autenticação de usuário)
O exemplo a seguir chama a API Chat usando
autenticação de usuário
para transformar um proprietário de espaço em um membro comum especificando role como
ROLE_MEMBER:
Node.js
Para executar a amostra, substitua o seguinte:
SPACE_NAME: o ID donamedo espaço. Você pode conseguir o ID chamando o métodoListSpaces()ou no URL do espaço.MEMBER_NAME: o ID donameda assinatura. Você pode receber o ID chamando o métodoListMemberships()ou no corpo da resposta retornado após criar uma assinatura de forma assíncrona com a API Chat.ROLE_NAME: a função atualizada,ROLE_MEMBER.
A API Google Chat atualiza a associação especificada para um proprietário do espaço e retorna uma instância de Membership.
Mudar um participante para proprietário (autenticação do app Chat)
A autenticação do app exige uma única aprovação do administrador.
Escrever um script que chama a API Chat
O exemplo a seguir chama a API Chat usando
autenticação de app
para transformar um membro comum em proprietário do espaço especificando role como
ROLE_MANAGER no body que especifica atributos de associação atualizados:
Python
- No diretório de trabalho, crie um arquivo chamado
chat_membership_update_to_owner_app.py. Inclua o seguinte código 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()No código, substitua o seguinte:
SPACE: o nome de um espaço, que pode ser obtido com o métodospaces.listna API Chat ou no URL de um espaço.MEMBERSHIP: um nome de assinatura, que pode ser obtido com o métodospaces.members.listna API Chat.ROLE: a função atualizada,ROLE_MANAGER. É possível definir esse valor como qualquer valor deMembershipRole. Por exemplo, para transformar um participante em administrador do espaço, mudeROLEparaROLE_ASSISTANT_MANAGER.
No diretório de trabalho, crie e execute a amostra:
python3 chat_membership_update_to_owner_app.py
Mudar um proprietário para participante (autenticação do app Chat)
A autenticação do app exige uma única aprovação do administrador.
Escrever um script que chama a API Chat
O exemplo a seguir chama a API Chat usando
autenticação de app
para transformar um proprietário de espaço em um membro comum especificando role como
ROLE_MEMBER no body que especifica atributos de associação atualizados:
Python
- No diretório de trabalho, crie um arquivo chamado
chat_membership_update_to_member_app.py. 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 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()No código, substitua o seguinte:
SPACE: o nome de um espaço, que pode ser obtido com o métodospaces.listna API Chat ou no URL de um espaço.MEMBERSHIP: um nome de assinatura, que pode ser obtido com o métodospaces.members.listna API Chat.
No diretório de trabalho, crie e execute a amostra:
python3 chat_membership_update_to_member_app.py
Atualizar associações como administrador do Google Workspace
Se você for admin 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:
- Chame o método usando a autenticação do usuário e especifique um escopo de autorização que permita chamar o método usando privilégios de administrador.
- Na solicitação, especifique o parâmetro de consulta
useAdminAccesscomotrue.
Para mais informações e exemplos, consulte Gerenciar espaços do Google Chat como administrador do Google Workspace.
Temas relacionados
- Convide ou adicione um usuário ou um app do Google Chat a um espaço.
- Receba detalhes sobre a assinatura de um usuário ou app do Chat.
- Listar participantes em um espaço.
- Remover um usuário ou app do Chat de um espaço.