Rechercher un espace de message privé (MP)

Ce guide explique comment utiliser la méthode findDirectMessage sur la ressource Space de l'API Google Chat pour obtenir des informations sur un espace de message privé (MP).

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.

L'authentification d'application permet à une application Chat de recevoir des MP auxquels elle a accès dans Google Chat (par exemple, des MP dont elle est membre). L'authentification via l'authentification utilisateur renvoie les MP 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. La recherche d'un message privé prend en charge les éléments suivants:

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 recherche d'un message privé prend en charge les éléments suivants:

Rechercher un message privé

Pour rechercher un message privé dans Google Chat, transmettez les éléments suivants dans votre requête:

  • Avec l'authentification d'application, spécifiez le champ d'application de l'autorisation chat.bot. Avec l'authentification utilisateur, spécifiez le champ d'application des autorisations chat.spaces.readonly ou chat.spaces.
  • Appelez la méthode findDirectMessage sur la ressource User, en transmettant l'identifiant name de l'autre utilisateur dans le MP à renvoyer. Avec l'authentification utilisateur, cette méthode renvoie un MP entre l'utilisateur appelant et l'utilisateur spécifié. Avec l'authentification d'application, cette méthode renvoie un MP entre l'application appelante et l'utilisateur spécifié.
  • Pour ajouter un utilisateur humain en tant que membre de l'espace, spécifiez users/{user}, où {user} est soit le {person_id} de l'person de l'API People, ou l'ID d'un user dans l'API Directory. Par exemple, si la personne de l'API People resourceName est people/123456789, vous pouvez ajouter l'utilisateur à l'espace en incluant une adhésion avec users/123456789 comme member.name.

Rechercher un message privé avec authentification des utilisateurs

Voici comment trouver un message privé avec authentification des utilisateurs:

Python

  1. Dans votre répertoire de travail, créez un fichier nommé chat_space_find_dm_user.py.
  2. Incluez le code suivant dans chat_space_find_dm_user.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 returns details about a specified DM.
        '''
    
        # 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().findDirectMessage(
    
              # The other user in the direct message (DM) to return.
              #
              # Replace USER with a user name.
              name='users/USER'
    
          ).execute()
    
        # Prints details about the created membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Dans le code, remplacez USER par le name d'un User dans Google Chat.

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

    python3 chat_space_find_dm_user.py
    

Node.js

  1. Dans votre répertoire de travail, créez un fichier nommé find-direct-message-space.js.

  2. Incluez le code suivant dans find-direct-message-space.js:

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * Find a direct message Chat space for a user.
    * @return {!Promise<!Object>}
    */
    async function findDirectMessageSpace() {
      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.findDirectMessage(
          {name: 'users/USER'});
    }
    
    findDirectMessageSpace().then(console.log);
    
  3. Dans le code, remplacez USER par le name d'un User dans Google Chat.

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

    node find-direct-message-space.js
    

L'API Chat renvoie une instance de Space qui détaille le MP spécifié.

Rechercher un message privé avec authentification d'application

Voici comment trouver un message privé avec l'authentification d'application:

Python

  1. Dans votre répertoire de travail, créez un fichier nommé chat_space_find_dm_app.py.
  2. Incluez le code suivant dans chat_space_find_dm_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().findDirectMessage(
    
        # The other user in the direct message (DM) to return.
        #
        # Replace USER with a user name.
        name='users/USER'
    
    ).execute()
    
    print(result)
    
  3. Dans le code, remplacez USER par le name d'un User dans Google Chat.

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

    python3 chat_space_find_dm_app.py
    

Node.js

  1. Dans votre répertoire de travail, créez un fichier nommé app-find-direct-message-space.js.

  2. Incluez le code suivant dans app-find-direct-message-space.js:

    const chat = require('@googleapis/chat');
    
    /**
    * Find a direct message Chat space for a user.
    * @return {!Promise<!Object>}
    */
    async function findDirectMessageSpace() {
      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.findDirectMessage(
          {name: 'users/USER'});
    }
    
    findDirectMessageSpace().then(console.log);
    
  3. Dans le code, remplacez USER par le name d'un User dans Google Chat.

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

    node app-find-direct-message-space.js
    

L'API Chat renvoie une instance de Space qui détaille le MP spécifié.