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

Ce guide explique comment utiliser la méthode patch sur la ressource membership. de l'API Google Chat pour modifier les attributs d'un abonnement, comme la modification d'un devenir gestionnaire de l'espace ou remplacer un gestionnaire de l'espace par membre de l'espace.

La Ressource Membership indique si un utilisateur humain ou une application Google Chat est invité, est inclus ou absent d'un espace.

Prérequis

Python

  • Python 3.6 ou version ultérieure
  • L'outil de gestion de packages pip
  • Les dernières bibliothèques clientes Google Pour les installer ou les mettre à jour, exécutez la commande suivante dans votre interface de ligne de commande:
    pip3 install --upgrade google-api-python-client google-auth-oauthlib
    

Node.js

  • Node.js 14 ou version ultérieure
  • La commande npm outil de gestion des paquets
  • Les dernières bibliothèques clientes Google Pour les installer ou les mettre à jour, exécutez la commande suivante dans votre interface de ligne de commande:
    npm install @google-cloud/local-auth @googleapis/chat
    

Apps Script ;

Modifier un abonnement

Pour modifier la composition d'un espace, indiquez les informations suivantes dans votre demande:

  • Spécifiez le champ d'application de l'autorisation chat.memberships.
  • Appelez la méthode Méthode patch sur la ressource Membership, et transmettez le name de l'abonnement à mettre à jour, ainsi qu'un updateMask et un body qui spécifie les attributs d'adhésion mis à jour.
  • updateMask spécifie les aspects de l'appartenance à mettre à jour. comprend les éléments suivants:
    • role: rôle de l'utilisateur dans un espace Chat, qui détermine ses droits d'accès dans l'espace. Les valeurs possibles sont les suivantes:
      • ROLE_MEMBER: membre de l'espace. L'utilisateur dispose d'autorisations de base, comme l'envoi de messages à l'espace. Dans un groupe privé et sans nom conversations, tout le monde a ce rôle.
      • ROLE_MANAGER: gestionnaire de l'espace. L'utilisateur dispose de toutes les autorisations de base, plus des autorisations administratives qui lui permettent de gérer l'espace, comme l'ajout ou supprimer des membres. Compatible uniquement avec les espaces où spaceType est SPACE (espaces nommés).

Désigner un membre standard de l'espace comme gestionnaire de l'espace

L'exemple suivant définit un membre d'espace standard comme gestionnaire en spécifiant role en tant que ROLE_MANAGER dans le body qui spécifie l'adhésion mise à jour Attributs:

Python

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

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

    python3 chat_membership_update.py
    

Node.js

  1. Dans votre répertoire de travail, créez un fichier nommé chat_membership_update.js.
  2. Ajoutez le code suivant dans 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);
    
  3. Dans le code, remplacez les éléments suivants:

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

    python3 chat_membership_update.js
    

Apps Script ;

Cet exemple appelle l'API Chat à l'aide de la méthode Service de chat avancé.

  1. Ajoutez le niveau d'autorisation chat.memberships au Fichier appsscript.json du projet Apps Script:

    "oauthScopes": [
      "https://www.googleapis.com/auth/chat.memberships"
    ]
    
  2. Ajoutez une fonction comme celle-ci au fichier code:

    /**
     * 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);
      }
    }
    

L'API Google Chat change l'abonnement spécifié en gestionnaire d'espace et renvoie Une instance de Membership détaillant la modification.

Désigner un gestionnaire de l'espace comme membre régulier

L'exemple suivant fait d'un gestionnaire d'espace un membre standard d'un espace en spécifiant role en tant que ROLE_MEMBER dans le body qui spécifie l'adhésion mise à jour Attributs:

Python

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

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

    python3 chat_membership_update.py
    

Node.js

  1. Dans votre répertoire de travail, créez un fichier nommé chat_membership_update.js.
  2. Ajoutez le code suivant dans 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);
    
  3. Dans le code, remplacez les éléments suivants:

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

    python3 chat_membership_update.js
    

Apps Script ;

Cet exemple appelle l'API Chat à l'aide de la méthode Service de chat avancé.

  1. Ajoutez le niveau d'autorisation chat.memberships au Fichier appsscript.json du projet Apps Script:

    "oauthScopes": [
      "https://www.googleapis.com/auth/chat.memberships"
    ]
    
  2. Ajoutez une fonction comme celle-ci au fichier code:

    /**
     * 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);
      }
    }
    

L'API Google Chat change l'abonnement spécifié en gestionnaire d'espace et renvoie Une instance de Membership détaillant la modification.