Aggiornare l'iscrizione di un utente a uno spazio di Google Chat

Questa guida spiega come utilizzare il update() metodo sulla risorsa Membership dell'API Google Chat per modificare gli attributi di un'iscrizione, ad esempio trasformare un membro dello spazio in un gestore dello spazio o un proprietario dello spazio.

Se sei un amministratore di Google Workspace, puoi chiamare il metodo update() per aggiornare l'abbonamento di qualsiasi spazio nella tua organizzazione Google Workspace.

La risorsa Membership rappresenta se un utente umano o un'app di Google Chat è invitato a, ne fa parte o non è presente in uno spazio.

Prerequisiti

Node.js

Aggiornare un abbonamento

Per aggiornare l'abbonamento a uno spazio, trasmetti quanto segue nella richiesta:

  • Specifica un ambito di autorizzazione:
    • Con l'autenticazione utente, specifica l'ambito di autorizzazione chat.memberships.
    • Con l'autenticazione dell'app, specifica l'ambito di autorizzazione chat.app.memberships. Quando aggiorni un abbonamento con l'autenticazione dell'app, puoi aggiornare solo gli abbonamenti negli spazi creati dalle app di Chat. L'autenticazione dell'app richiede l'approvazione una tantum dell'amministratore.
  • Chiama il UpdateMembership() metodo.
  • Trasmetti membership come istanza di Membership con quanto segue:
    • Il campo name impostato sull'abbonamento da aggiornare, che include un ID spazio e un ID membro.
    • I campi dell'abbonamento da aggiornare impostati sui nuovi valori.
  • Trasmetti updateMask per specificare gli aspetti dell'abbonamento da aggiornare, tra cui:
    • role: il ruolo dell'utente all'interno di uno spazio di Chat, che determina le azioni consentite nello spazio. Per spiegazioni dettagliate delle autorizzazioni, consulta MembershipRole nella documentazione di riferimento dell'API Chat. I valori possibili sono:
      • ROLE_MEMBER: un membro dello spazio. Nell'interfaccia utente di Chat, questo ruolo è chiamato Membro.
      • ROLE_ASSISTANT_MANAGER: un gestore dello spazio. Nell'interfaccia utente di Chat, questo ruolo è chiamato Gestore.
      • ROLE_MANAGER: un proprietario dello spazio. Nell'interfaccia utente di Chat, questo ruolo è chiamato Proprietario.

Trasformare un membro in un proprietario (autenticazione utente)

L'esempio seguente chiama l'API Chat utilizzando l'autenticazione utente per trasformare un membro regolare dello spazio in un proprietario dello spazio specificando role come 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();

Per eseguire l'esempio, sostituisci quanto segue:

  • SPACE_NAME: l'ID dello spazio name. Puoi ottenere l'ID chiamando il ListSpaces() metodo o dall'URL dello spazio.
  • MEMBER_NAME: l'ID dell'abbonamento name. Puoi ottenere l'ID chiamando il ListMemberships() metodo o dal corpo della risposta restituito dopo aver creato un abbonamento in modo asincrono con l'API Chat.
  • ROLE_NAME: il ruolo aggiornato, ROLE_MANAGER. Puoi impostare questo valore su qualsiasi valore di MembershipRole. Ad esempio, per trasformare il membro regolare in un gestore dello spazio, modifica ROLE_NAME in ROLE_ASSISTANT_MANAGER.

L'API Google Chat aggiorna l'abbonamento specificato a un proprietario dello spazio e restituisce un'istanza di Membership.

Trasformare un proprietario in un membro (autenticazione utente)

L'esempio seguente chiama l'API Chat utilizzando l'autenticazione utente per trasformare un proprietario dello spazio in un membro regolare dello spazio specificando role come 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();

Per eseguire l'esempio, sostituisci quanto segue:

  • SPACE_NAME: l'ID dello spazio name. Puoi ottenere l'ID chiamando il ListSpaces() metodo o dall'URL dello spazio.
  • MEMBER_NAME: l'ID dell'abbonamento name. Puoi ottenere l'ID chiamando il ListMemberships() metodo o dal corpo della risposta restituito dopo aver creato un abbonamento in modo asincrono con l'API Chat.
  • ROLE_NAME: il ruolo aggiornato, ROLE_MEMBER.

L'API Google Chat aggiorna l'abbonamento specificato a un proprietario dello spazio e restituisce un'istanza di Membership.

Trasformare un membro in un proprietario (autenticazione dell'app di Chat)

L'autenticazione dell'app richiede l'approvazione una tantum dell'amministratore.

Scrivere uno script che chiama l'API Chat

L'esempio seguente chiama l'API Chat utilizzando l'autenticazione dell'app per trasformare un membro regolare dello spazio in un proprietario dello spazio specificando role come ROLE_MANAGER nel body che specifica gli attributi dell'abbonamento aggiornati:

Python

  1. Nella directory di lavoro, crea un file denominato chat_membership_update_to_owner_app.py.
  2. Includi il seguente codice in 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. Nel codice, sostituisci quanto segue:

    • SPACE: il nome di uno spazio, che puoi ottenere dal spaces.list metodo nell'API Chat o dall'URL di uno spazio.

    • MEMBERSHIP: il nome di un abbonamento, che puoi ottenere dal spaces.members.list metodo nell'API Chat.

    • ROLE: il ruolo aggiornato, ROLE_MANAGER. Puoi impostare questo valore su qualsiasi valore di MembershipRole. Ad esempio, per trasformare il membro regolare in un gestore dello spazio, modifica ROLE in ROLE_ASSISTANT_MANAGER.

  4. Nella directory di lavoro, crea ed esegui l'esempio:

    python3 chat_membership_update_to_owner_app.py

Trasformare un proprietario in un membro (autenticazione dell'app di Chat)

L'autenticazione dell'app richiede l'approvazione una tantum dell'amministratore.

Scrivere uno script che chiama l'API Chat

L'esempio seguente chiama l'API Chat utilizzando l'autenticazione dell'app per trasformare un proprietario dello spazio in un membro regolare dello spazio specificando role come ROLE_MEMBER nel body che specifica gli attributi dell'abbonamento aggiornati:

Python

  1. Nella directory di lavoro, crea un file denominato chat_membership_update_to_member_app.py.
  2. Includi il seguente codice in 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. Nel codice, sostituisci quanto segue:

  4. Nella directory di lavoro, crea ed esegui l'esempio:

    python3 chat_membership_update_to_member_app.py

Aggiornare gli abbonamenti come amministratore di Google Workspace

Se sei un amministratore di Google Workspace, puoi chiamare il metodo update() per aggiornare gli abbonamenti di qualsiasi spazio nella tua organizzazione Google Workspace.

Per chiamare questo metodo come amministratore di Google Workspace:

Per ulteriori informazioni ed esempi, vedi Gestire gli spazi di Google Chat come amministratore di Google Workspace.