Modifier l'appartenance d'un utilisateur à un espace Google Chat

Ce guide explique comment utiliser la update() méthode sur la ressource Membership de l'API Google Chat pour modifier les attributs d'une appartenance, par exemple pour faire passer un membre d'un espace au rôle de gestionnaire de l'espace ou de propriétaire.

Si vous êtes administrateur Google Workspace, vous pouvez appeler la méthode update() pour modifier l'appartenance à n'importe quel espace de votre organisation Google Workspace.

La ressource Membership représente si un utilisateur humain ou une application Google Chat est invité à, partie de, ou absent d'un espace.

Prérequis

Node.js

Modifier une appartenance

Pour modifier l'appartenance à un espace, transmettez les éléments suivants dans votre requête :

  • Spécifiez un niveau d'accès d'autorisation :
    • Avec l'authentification de l'utilisateur, spécifiez le niveau d'accès d'autorisation chat.memberships.
    • Avec l'authentification de l'application, spécifiez le niveau d'accès d'autorisation chat.app.memberships. Lorsque vous modifiez une appartenance avec l'authentification de l'application, vous ne pouvez modifier que les appartenances dans les espaces créés par les applications Chat. L'authentification de l'application nécessite une approbation unique de l'administrateur.
  • Appelez la UpdateMembership() méthode.
  • Transmettez membership en tant qu'instance de Membership avec les éléments suivants :
    • Le champ name défini sur l'appartenance à modifier, qui inclut un ID d'espace et un ID de membre.
    • Les champs d'appartenance à modifier définis sur les nouvelles valeurs.
  • Transmettez updateMask pour spécifier les aspects de l'appartenance à modifier. Il inclut les éléments suivants :
    • role: rôle de l'utilisateur dans un espace Chat, qui détermine les actions autorisées dans l'espace. Pour obtenir des explications détaillées sur les autorisations, consultez MembershipRole dans la documentation de référence de l'API Chat. Valeurs possibles :
      • ROLE_MEMBER : membre de l'espace. Dans l'UI Chat, ce rôle est appelé Membre.
      • ROLE_ASSISTANT_MANAGER : gestionnaire d'espace. Dans l'UI Chat, ce rôle est appelé Gestionnaire.
      • ROLE_MANAGER : propriétaire de l'espace. Dans l'UI Chat, ce rôle est appelé Propriétaire.

Faire passer un membre au rôle de propriétaire (authentification de l'utilisateur)

L'exemple suivant appelle l'API Chat à l'aide de l'authentification de l'utilisateur pour faire passer un membre d'espace ordinaire au rôle de propriétaire en spécifiant role comme 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();

Pour exécuter l'exemple, remplacez les éléments suivants :

  • SPACE_NAME : ID du name de l'espace. Vous pouvez obtenir l'ID en appelant la ListSpaces() méthode ou à partir de l'URL de l'espace.
  • MEMBER_NAME : ID de l'appartenance name. Vous pouvez obtenir l'ID en appelant la ListMemberships() méthode, ou à partir du corps de la réponse renvoyée après avoir créé une appartenance de manière asynchrone avec l'API Chat.
  • ROLE_NAME : rôle modifié, ROLE_MANAGER. Vous pouvez définir cette valeur sur n'importe quelle valeur de MembershipRole. Par exemple, pour faire passer le membre ordinaire au rôle de gestionnaire de l'espace, remplacez ROLE_NAME par ROLE_ASSISTANT_MANAGER.

L'API Google Chat modifie l'appartenance spécifiée en propriétaire d'espace et renvoie une instance de Membership.

Faire passer un propriétaire au rôle de membre (authentification de l'utilisateur)

L'exemple suivant appelle l'API Chat à l'aide de l'authentification de l'utilisateur pour faire passer un propriétaire d'espace au rôle de membre d'espace ordinaire en spécifiant role comme 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();

Pour exécuter l'exemple, remplacez les éléments suivants :

  • SPACE_NAME : ID du name de l'espace. Vous pouvez obtenir l'ID en appelant la ListSpaces() méthode ou à partir de l'URL de l'espace.
  • MEMBER_NAME : ID de l'appartenance name. Vous pouvez obtenir l'ID en appelant la ListMemberships() méthode, ou à partir du corps de la réponse renvoyée après avoir créé une appartenance de manière asynchrone avec l'API Chat.
  • ROLE_NAME : rôle modifié, ROLE_MEMBER.

L'API Google Chat modifie l'appartenance spécifiée en propriétaire d'espace et renvoie une instance de Membership.

Faire passer un membre au rôle de propriétaire (authentification de l'application Chat)

L'authentification de l'application nécessite une approbation unique de l'administrateur.

Écrire un script qui appelle l'API Chat

L'exemple suivant appelle l'API Chat à l'aide de l'authentification de l'application pour faire passer un membre d'espace ordinaire au rôle de propriétaire en spécifiant role comme ROLE_MANAGER dans le body qui spécifie les attributs d'appartenance modifiés :

Python

  1. Dans votre répertoire de travail, créez un fichier nommé chat_membership_update_to_owner_app.py.
  2. Incluez le code suivant dans 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. Dans le code, remplacez les éléments suivants :

    • SPACE : nom d'espace, que vous pouvez obtenir à partir de la méthode spaces.list de l'API Chat ou à partir de l'URL d'un espace.

    • MEMBERSHIP : nom d'appartenance, que vous pouvez obtenir à partir de la spaces.members.list méthode de l'API Chat.

    • ROLE : rôle modifié, ROLE_MANAGER. Vous pouvez définir cette valeur sur n'importe quelle valeur de MembershipRole. Par exemple, pour faire passer le membre ordinaire au rôle de gestionnaire de l'espace, remplacez ROLE par ROLE_ASSISTANT_MANAGER au lieu de cela.

  4. Dans votre répertoire de travail, compilez et exécutez l'exemple :

    python3 chat_membership_update_to_owner_app.py

Faire passer un propriétaire au rôle de membre (authentification de l'application Chat)

L'authentification de l'application nécessite une approbation unique de l'administrateur.

Écrire un script qui appelle l'API Chat

L'exemple suivant appelle l'API Chat à l'aide de l'authentification de l'application pour faire passer un propriétaire d'espace au rôle de membre d'espace ordinaire en spécifiant role comme ROLE_MEMBER dans le body qui spécifie les attributs d'appartenance modifiés :

Python

  1. Dans votre répertoire de travail, créez un fichier nommé chat_membership_update_to_member_app.py.
  2. Incluez le code suivant dans 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. Dans le code, remplacez les éléments suivants :

    • SPACE : nom d'espace, que vous pouvez obtenir à partir de la méthode spaces.list de l'API Chat ou à partir de l'URL d'un espace.

    • MEMBERSHIP : nom d'appartenance, que vous pouvez obtenir à partir de la spaces.members.list méthode de l'API Chat.

  4. Dans votre répertoire de travail, compilez et exécutez l'exemple :

    python3 chat_membership_update_to_member_app.py

Modifier des appartenances en tant qu'administrateur Google Workspace

Si vous êtes administrateur Google Workspace, vous pouvez appeler la méthode update() pour modifier les appartenances de n'importe quel espace de votre organisation Google Workspace.

Pour appeler cette méthode en tant qu'administrateur Google Workspace, procédez comme suit :

  • Appelez la méthode à l'aide de l'authentification de l'utilisateur et spécifiez un niveau d'accès d'autorisation qui permet d'appeler la méthode à l'aide des droits d'administrateur.
  • Dans votre requête, spécifiez le paramètre de requête useAdminAccess sur true.

Pour en savoir plus et obtenir des exemples, consultez Gérer les espaces Google Chat en tant qu'administrateur Google Workspace.