Configurer un espace avec les premiers membres

Ce guide explique comment utiliser la méthode setup sur la ressource Space de l'API Google Chat pour configurer un espace Google Chat. La configuration d'un espace crée un espace et y ajoute des utilisateurs spécifiques.

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.

Lorsque vous configurez un espace, tenez compte des points suivants:

  • L'utilisateur appelant (authentifié) est automatiquement ajouté à l'espace. Vous n'avez donc pas besoin de spécifier son appartenance à la requête.
  • Lorsque vous créez un message privé (MP), si un MP existe entre deux utilisateurs, il est renvoyé. Sinon, un MP est créé.
  • Lors de la création d'un chat de groupe, si aucune des adhésions fournies dans la requête n'a pu être ajoutée au chat de groupe (par exemple, en raison d'un problème d'autorisation), un chat de groupe vide (comprenant uniquement l'utilisateur appelant) peut être créé.
  • Vous ne pouvez pas configurer d'espaces avec des réponses organisées en fils de discussion ni ajouter des personnes extérieures à votre compte Google Workspace.
  • Les adhésions en double (y compris l'utilisateur appelant) fournies dans la requête sont filtrées au lieu d'entraîner une erreur.

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 configuration d'un espace nécessite une authentification des utilisateurs avec le champ d'application d'autorisation chat.spaces.create ou 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 création d'un espace nécessite une authentification des utilisateurs avec le niveau d'autorisation chat.spaces.create ou chat.spaces.

Configurer un espace

Pour configurer un espace, transmettez les éléments suivants dans votre requête:

  • Spécifiez le champ d'application des autorisations chat.spaces.create ou chat.spaces.
  • Appelez la méthode setup sur la ressource Space.
  • Pour ajouter un utilisateur humain en tant que membre de l'espace, spécifiez users/{user}, où {user} est le {person_id} de l'élément person de l'API People ou l'ID d'un user dans l'API Directory. Par exemple, si l'utilisateur resourceName de l'API People est people/123456789, vous pouvez ajouter l'utilisateur à l'espace en incluant une appartenance avec users/123456789 comme member.name.
  • Pour créer un MP entre l'utilisateur appelant et un autre utilisateur humain, spécifiez son appartenance à l'utilisateur humain dans votre requête.
  • Pour créer un MP entre l'utilisateur appelant et l'application appelante, définissez Space.singleUserBotDm sur true et ne spécifiez aucune adhésion. Vous ne pouvez utiliser cette méthode que pour configurer un MP avec l'application appelante. Pour ajouter l'application appelante en tant que membre d'un espace ou en tant que MP existant entre deux utilisateurs, consultez Créer un abonnement.

L'exemple suivant crée un espace nommé et crée des adhésions à l'espace pour trois utilisateurs humains, l'utilisateur authentifié et deux autres utilisateurs spécifiés:

Python

  1. Dans votre répertoire de travail, créez un fichier nommé chat_space_setup.py.
  2. Incluez le code suivant dans chat_space_setup.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.create"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then sets up a Chat space by creating a space and adding members.
        '''
    
        # 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().setup(
    
          # Details about the space to set up.
          body = {
    
            # Attributes of the space to set up, like space type and display name.
            'space': {
    
                # To set up a named space, set spaceType to SPACE.
                'spaceType': 'SPACE',
    
                # The user-visible name of the space
                'displayName': 'API-setup'
            },
    
            # The people and app to add to the space.
            #
            # The authenticated user is automatically added to the space,
            # and doesn't need to be specified in the memberships array.
            'memberships': [
                {
                  'member': {
                    'name':'users/123456789',
                    'type': 'HUMAN'
                  }
                },
                {
                  'member': {
                    'name':'users/987654321',
                    'type': 'HUMAN'
                  }
                }
            ]
          }
    
          ).execute()
    
        # Prints details about the created membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Dans votre répertoire de travail, créez et exécutez l'exemple:

    python3 chat_space_setup.py
    

Node.js

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

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * Sets up a new Chat space with users.
    * @return {!Promise<!Object>}
    */
    async function setupSpace() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.spaces.create',
      ];
    
      const authClient =
          await authenticate({scopes, keyfilePath: 'client_secrets.json'});
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.setup({
        requestBody: {
          space: {
            spaceType: 'SPACE',
            displayName: 'API-made',
          },
          memberships: [
            {member: {name: 'users/123456789', type: 'HUMAN'}},
            {member: {name: 'users/987654321', type: 'HUMAN'}},
          ]
        }
      });
    }
    
    setupSpace().then(console.log);
    
  3. Dans votre répertoire de travail, exécutez l'exemple:

    node setup-space.js
    

Un espace Chat nommé avec trois utilisateurs humains est configuré, y compris l'utilisateur authentifié.

Pour accéder à l'espace, utilisez son ID de ressource afin de créer son URL. Vous pouvez obtenir l'ID de ressource à partir de l'espace name dans le corps de la réponse Google Chat. Par exemple, si la classe name de votre espace est spaces/1234567, vous pouvez y accéder à l'aide de l'URL suivante : https://mail.google.com/chat/u/0/#chat/space/1234567.