Lister les espaces

Ce guide explique comment utiliser la ressource list sur la ressource Space de l'API Google Chat pour répertorier les espaces. La liste des espaces renvoie une liste paginée et filtrable d'espaces.

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.

La liste des espaces avec authentification de l'application répertorie les espaces auxquels l'application Chat a accès. La liste des espaces avec Authentification de l'utilisateur répertorie les espaces auxquels l'utilisateur authentifié a accès.

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 google-auth
    
  • 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. Répertorier les espaces est compatible avec les deux méthodes d'authentification suivantes:

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. Répertorier les espaces est compatible avec les deux méthodes d'authentification suivantes:

Répertorier les espaces avec authentification des utilisateurs

Pour répertorier les espaces dans Google Chat, transmettez les éléments suivants dans votre requête:

L'exemple suivant répertorie les espaces nommés et les chats de groupe (mais pas les messages privés, qui sont filtrés) visibles par l'utilisateur authentifié:

Python

  1. Dans votre répertoire de travail, créez un fichier nommé chat_space_list.py.
  2. Incluez le code suivant dans chat_space_list.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.readonly"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then lists named spaces and group chats (but not direct messages)
        visible to the authenticated user.
        '''
    
        # 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().list(
    
              # An optional filter that returns named spaces or unnamed group chats,
              # but not direct messages (DMs).
              filter='spaceType = "SPACE" OR spaceType = "GROUP_CHAT"'
    
          ).execute()
    
        # Prints the returned list of spaces.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Dans votre répertoire de travail, créez et exécutez l'exemple:

    python3 chat_space_list.py
    

Node.js

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

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * List Chat spaces.
    * @return {!Promise<!Object>}
    */
    async function listSpaces() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.spaces.readonly',
      ];
    
      const authClient =
          await authenticate({scopes, keyfilePath: 'client_secrets.json'});
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.list({
        filter: 'spaceType = "SPACE" OR spaceType = "GROUP_CHAT"'
      });
    }
    
    listSpaces().then(console.log);
    
  3. Dans votre répertoire de travail, exécutez l'exemple:

    node list-spaces.js
    

L'API Chat renvoie un tableau paginé d'espaces et de chats de groupe nommés.

Répertorier les espaces avec authentification de l'application

Pour répertorier les espaces dans Google Chat, transmettez les éléments suivants dans votre requête:

L'exemple suivant répertorie les espaces nommés et les chats de groupe (mais pas les messages privés) visibles par l'application Chat:

Python

  1. Dans votre répertoire de travail, créez un fichier nommé chat_space_list_app.py.
  2. Incluez le code suivant dans chat_space_list_app.py:

    from google.oauth2 import service_account
    from apiclient.discovery import build
    
    # Specify required scopes.
    SCOPES = ['https://www.googleapis.com/auth/chat.bot']
    
    # Specify service account details.
    CREDENTIALS = (
        service_account.Credentials.from_service_account_file('credentials.json')
        .with_scopes(SCOPES)
    )
    
    # Build the URI and authenticate with the service account.
    chat = build('chat', 'v1', credentials=CREDENTIALS)
    
    # Use the service endpoint to call Chat API.
    result = chat.spaces().list(
    
            # An optional filter that returns named spaces or unnamed
            # group chats, but not direct messages (DMs).
            filter='spaceType = "SPACE" OR spaceType = "GROUP_CHAT"'
    
        ).execute()
    
    print(result)
    
  3. Dans votre répertoire de travail, créez et exécutez l'exemple:

    python3 chat_space_list_app.py
    

Node.js

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

    const chat = require('@googleapis/chat');
    
    /**
    * List Chat spaces.
    * @return {!Promise<!Object>}
    */
    async function listSpaces() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.bot',
      ];
    
      const auth = new chat.auth.GoogleAuth({
        scopes,
        keyFilename: 'credentials.json',
      });
    
      const authClient = await auth.getClient();
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.list({
        filter: 'spaceType = "SPACE" OR spaceType = "GROUP_CHAT"'
      });
    }
    
    listSpaces().then(console.log);
    
  3. Dans votre répertoire de travail, exécutez l'exemple:

    node app-list-spaces.js
    

L'API Chat renvoie un tableau paginé d'espaces.

Personnaliser la pagination ou filtrer la liste

Pour répertorier les espaces dans Google Chat, transmettez les paramètres de requête facultatifs suivants afin de personnaliser la pagination ou de filtrer les espaces répertoriés:

  • pageSize: nombre maximal d'espaces à renvoyer. Le service peut renvoyer une valeur inférieure à cette valeur. Si aucune valeur n'est spécifiée, au maximum 100 espaces sont renvoyés. La valeur maximale est de 1 000. Les valeurs supérieures à 1 000 sont automatiquement remplacées par 1 000.
  • pageToken: jeton de page, reçu lors d'un précédent appel d'espaces de liste. Fournissez ce jeton pour récupérer la page suivante. Lors de la pagination, la valeur du filtre doit correspondre à l'appel qui a fourni le jeton de page. La transmission d'une valeur différente peut entraîner des résultats inattendus.
  • filter: filtre de requête. Pour en savoir plus sur les requêtes acceptées, consultez la méthode spaces.list.