Neste guia, explicamos como usar o método patch
no recurso membership
da API Google Chat para mudar atributos de uma associação, como a mudança de um
participante para um administrador ou de um administrador do espaço para participante.
O
recurso Membership
representa se um usuário humano ou app do Google Chat foi convidado,
parte de ou ausente de um espaço.
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. Para atualizar uma assinatura, é preciso ter a autenticação do usuário com o escopo de autorização
chat.memberships
ou, se importar dados para o Chat, o escopo de autorizaçãochat.import
.
Node.js
- Node.js e npm
As bibliotecas de cliente mais recentes do Google para Node.js. Para instalá-los, execute o seguinte comando na interface de linha de comando:
npm install @google-cloud/local-auth @googleapis/chat
- 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. Para atualizar uma assinatura, é preciso ter a autenticação do usuário com o escopo de autorização
chat.memberships
ou, se importar dados para o Chat, o escopo de autorizaçãochat.import
.
Apps Script
- Uma conta do Google Workspace com acesso ao Google Chat.
- Um app do Chat publicado. Para criar um app do Chat, siga este quickstart.
- Autorização configurada para o app do Chat. Para atualizar
uma assinatura, é preciso ter a
autenticação do usuário
com o escopo de autorização
chat.memberships
ou, se importar dados para o Chat, o escopo de autorizaçãochat.import
.
Atualizar uma assinatura
Para atualizar os participantes de um espaço, envie o seguinte na sua solicitação:
- Especifique o escopo de autorização
chat.memberships
. - Chame o
método
patch
noMembership
recurso e transmita oname
da assinatura a ser atualizada, além de umupdateMask
e umbody
que especifiquem os atributos de associação atualizados. - O
updateMask
especifica os aspectos da assinatura a serem atualizados e 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 em grupo individuais e sem nome, todos têm esse papel.ROLE_MANAGER
: administrador do espaço. O usuário tem todas as permissões básicas, além de permissões administrativas que permitem gerenciar o espaço, como adicionar ou remover membros. Compatível apenas com espaços em quespaceType
éSPACE
(espaços nomeados).
Tornar alguém administrador do espaço
No exemplo a seguir, um participante comum do espaço se torna administrador. Basta especificar
role
como ROLE_MANAGER
no body
, que especifica os atributos de associação
atualizados:
Python
- No diretório de trabalho, crie um arquivo chamado
chat_membership_update.py
. Inclua o seguinte código em
chat_membership_update.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"] 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. ''' # 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().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()
No código, substitua o seguinte:
SPACE
: um nome de espaço, que pode ser obtido no métodospaces.list
na API Chat ou no URL de um espaço.MEMBERSHIP
: um nome de assinatura, que pode ser obtido no métodospaces.members.list
na API Chat.
No diretório de trabalho, crie e execute a amostra:
python3 chat_membership_update.py
Node.js
- No diretório de trabalho, crie um arquivo chamado
chat_membership_update.js
. Inclua o seguinte código em
chat_membership_update.js
:const chat = require('@googleapis/chat'); const {authenticate} = require('@google-cloud/local-auth'); /** * Updates a membership in a Chat space to change it from * a space member to a space manager. * @return {!Promise<!Object>} */ async function updateSpace() { /** * Authenticate with Google Workspace * and get user authorization. */ const scopes = [ 'https://www.googleapis.com/auth/chat.memberships', ]; const authClient = await authenticate({scopes, keyfilePath: 'client_secrets.json'}); /** * Build a service endpoint for Chat API. */ const chatClient = await chat.chat({version: 'v1', auth: authClient}); /** * Use the service endpoint to call Chat API. */ return await chatClient.spaces.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', requestBody: { role: 'ROLE_MANAGER' } }); } /** * Use the service endpoint to call Chat API. */ updateSpace().then(console.log);
No código, substitua o seguinte:
SPACE
: um nome de espaço, que pode ser obtido no métodospaces.list
na API Chat ou no URL de um espaço.MEMBERSHIP
: um nome de assinatura, que pode ser obtido no métodospaces.members.list
na API Chat.
No diretório de trabalho, crie e execute a amostra:
python3 chat_membership_update.js
Apps Script
Neste exemplo, a API Chat é chamada usando o serviço avançado do Chat.
Adicione o escopo de autorização
chat.memberships
ao arquivoappsscript.json
do projeto do Apps Script:"oauthScopes": [ "https://www.googleapis.com/auth/chat.memberships" ]
Adicione uma função como esta ao código do projeto do Apps Script:
/** * Updates a membership from space member to space manager. * @param {string} memberName The resource name of the membership. */ function updateMembershipToSpaceManager(memberName) { try { const body = {'role': 'ROLE_MANAGER'}; Chat.Spaces.Members.patch(memberName, body); } catch (err) { // TODO (developer) - Handle exception console.log('Failed to create message with error %s', err.message); } }
A API Google Chat muda a associação especificada para um administrador do espaço e retorna
uma instância de Membership
detalhando a mudança.
Tornar um administrador do espaço um participante comum
O exemplo a seguir torna um administrador um participante comum do espaço especificando
role
como ROLE_MEMBER
no body
, que especifica os atributos de associação
atualizados:
Python
- No diretório de trabalho, crie um arquivo chamado
chat_membership_update.py
. Inclua o seguinte código em
chat_membership_update.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"] 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. ''' # 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().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
: um nome de espaço, que pode ser obtido no métodospaces.list
na API Chat ou no URL de um espaço.MEMBERSHIP
: um nome de assinatura, que pode ser obtido no métodospaces.members.list
na API Chat.
No diretório de trabalho, crie e execute a amostra:
python3 chat_membership_update.py
Node.js
- No diretório de trabalho, crie um arquivo chamado
chat_membership_update.js
. Inclua o seguinte código em
chat_membership_update.js
:const chat = require('@googleapis/chat'); const {authenticate} = require('@google-cloud/local-auth'); /** * Updates a membership in a Chat space to change it from * a space manager to a space member. * @return {!Promise<!Object>} */ async function updateSpace() { /** * Authenticate with Google Workspace * and get user authorization. */ const scopes = [ 'https://www.googleapis.com/auth/chat.memberships', ]; const authClient = await authenticate({scopes, keyfilePath: 'client_secrets.json'}); /** * Build a service endpoint for Chat API. */ const chatClient = await chat.chat({version: 'v1', auth: authClient}); /** * Use the service endpoint to call Chat API. */ return await chatClient.spaces.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', requestBody: { role: 'ROLE_MEMBER' } }); } /** * Use the service endpoint to call Chat API. */ updateSpace().then(console.log);
No código, substitua o seguinte:
SPACE
: um nome de espaço, que pode ser obtido no métodospaces.list
na API Chat ou no URL de um espaço.MEMBERSHIP
: um nome de assinatura, que pode ser obtido no métodospaces.members.list
na API Chat.
No diretório de trabalho, crie e execute a amostra:
python3 chat_membership_update.js
Apps Script
Neste exemplo, a API Chat é chamada usando o serviço avançado do Chat.
Adicione o escopo de autorização
chat.memberships
ao arquivoappsscript.json
do projeto do Apps Script:"oauthScopes": [ "https://www.googleapis.com/auth/chat.memberships" ]
Adicione uma função como esta ao código do projeto do Apps Script:
/** * Updates a membership from space manager to space member. * @param {string} memberName The resource name of the membership. */ function updateMembershipToSpaceMember(memberName) { try { const body = {'role': 'ROLE_MEMBER'}; Chat.Spaces.Members.patch(memberName, body); } catch (err) { // TODO (developer) - Handle exception console.log('Failed to create message with error %s', err.message); } }
A API Google Chat muda a associação especificada para um administrador do espaço e retorna
uma instância de Membership
detalhando a mudança.
Temas relacionados
- Convidar ou adicionar um usuário ou um app do Google Chat a um espaço.
- Ver detalhes sobre a assinatura de um usuário ou um app do Chat.
- Listar os participantes em um espaço
- Remover um usuário ou app do Chat de um espaço