Modifier un espace

Ce guide explique comment utiliser la méthode patch sur la ressource Space de l'API Google Chat pour mettre à jour un espace. Mettez à jour un espace pour modifier ses attributs, tels que son nom à afficher, sa description et ses consignes visibles par l'utilisateur.

La ressource Space représente un emplacement où les utilisateurs et les applications Chat peuvent envoyer des messages, partager des fichiers et collaborer. Il existe plusieurs types d'espaces:

  • Les messages privés (MP) sont des conversations entre deux utilisateurs ou un utilisateur et une application Chat.
  • Les chats de groupe sont des conversations entre trois utilisateurs ou plus et des applications Chat.
  • Les espaces nommés sont des espaces persistants où les utilisateurs envoient des messages, partagent des fichiers et collaborent.

Prérequis

Python

  • Python 3.6 ou version ultérieure
  • L'outil de gestion des packages pip
  • Les dernières bibliothèques clientes Google pour Python. 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
    
  • Un projet Google Cloud avec l'API Google Chat activée et configurée Pour connaître la procédure à suivre, consultez Créer une application Google Chat.
  • Autorisation configurée pour l'application Chat. La mise à jour d'un espace nécessite une authentification des utilisateurs avec le niveau d'autorisation chat.spaces.

Node.js

  • Node.js et npm
  • Les dernières bibliothèques clientes Google pour Node.js. Pour les installer, exécutez la commande suivante dans votre interface de ligne de commande:

    npm install @google-cloud/local-auth @googleapis/chat
    
  • Un projet Google Cloud avec l'API Google Chat activée et configurée Pour connaître la procédure à suivre, consultez Créer une application Google Chat.
  • Autorisation configurée pour l'application Chat. La mise à jour d'un espace nécessite une authentification des utilisateurs avec le niveau d'autorisation chat.spaces.

Modifier un espace

Pour mettre à jour un espace existant dans Google Chat, transmettez les éléments suivants dans votre requête:

  • Spécifiez le champ d'application des autorisations chat.spaces.
  • Appelez la méthode patch sur la ressource Space, puis transmettez le name de l'espace à mettre à jour, ainsi qu'un updateMask et un body qui spécifient les attributs d'espace mis à jour.
  • updateMask spécifie les aspects de l'espace à mettre à jour et inclut les éléments suivants :
    • displayName: met à jour le nom lisible de l'espace affiché dans l'interface utilisateur de Google Chat. Possibilité de modifier le nom à afficher d'un espace de type SPACE ou d'inclure également le masque spaceType pour remplacer le type d'espace GROUP_CHAT par SPACE. Si vous essayez de mettre à jour le nom à afficher d'un élément GROUP_CHAT ou d'un espace DIRECT_MESSAGE, cela entraîne une erreur d'argument non valide.
    • spaceType: met à jour le type d'espace, mais ne permet que de remplacer le type d'espace GROUP_CHAT par SPACE. Incluez displayName avec spaceType dans le masque de mise à jour, et assurez-vous que l'espace spécifié possède un displayName non vide et le type d'espace SPACE. Si l'espace existant possède déjà le type SPACE, y compris le masque spaceType et le type SPACE dans l'espace spécifié lors de la mise à jour du nom à afficher, il est facultatif . Toute tentative de mise à jour du type d'espace d'une autre manière génère une erreur d'argument non valide.
    • spaceDetails: informations sur l'espace, y compris la description et les règles
    • spaceHistoryState: permet d'activer ou de désactiver l'historique pour l'espace si l'organisation autorise les utilisateurs à modifier leurs paramètres d'historique. Exclusion mutuelle avec tous les autres chemins d'accès de champ.

Pour mettre à jour la propriété spaceDetails d'un espace existant:

Python

  1. Dans votre répertoire de travail, créez un fichier nommé chat_space_update.py.
  2. Incluez le code suivant dans chat_space_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.spaces"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then updates the specified space description and guidelines.
        '''
    
        # 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().patch(
    
          # The space to update, and the updated space details.
          #
          # Replace {space} with a space name.
          # Obtain the space name from the spaces resource of Chat API,
          # or from a space's URL.
          name='spaces/SPACE',
          updateMask='spaceDetails',
          body={
    
            'spaceDetails': {
              'description': 'This description was updated with Chat API!',
              'guidelines': 'These guidelines were updated with Chat API!'
            }
    
          }
    
        ).execute()
    
        # Prints details about the created membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Dans le code, remplacez SPACE par le nom d'un espace, que vous pouvez obtenir à partir de la méthode spaces.list de l'API Chat ou de l'URL d'un espace.

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

    python3 chat_space_update.py
    

Node.js

  1. Dans votre répertoire de travail, créez un fichier nommé update-space.js.
  2. Incluez le code suivant dans update-space.js:

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * Updates a Chat space with the description and guidelines.
    * @return {!Promise<!Object>}
    */
    async function updateSpace() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.spaces',
      ];
    
      const authClient =
          await authenticate({scopes, keyfilePath: 'client_secrets.json'});
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.patch({
        name: 'spaces/SPACE',
        updateMask: 'spaceDetails',
        requestBody: {
          spaceDetails: {
            description: 'This description was updated with Chat API!',
            guidelines: 'These guidelines were updated with Chat API!'
          },
        }
      });
    }
    
    updateSpace().then(console.log);
    
  3. Dans le code, remplacez SPACE par le nom d'un espace, que vous pouvez obtenir à partir de la méthode spaces.list de l'API Chat ou de l'URL d'un espace.

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

    node update-space.js
    

L'API Google Chat renvoie une instance de la ressource Space reflétant les mises à jour.