Gruppenbereich für Direktnachrichten (DN) suchen

In diesem Leitfaden wird die Verwendung der findDirectMessage-Methode auf Space erläutert. der Google Chat API, um Details zu einem Bereich für Direktnachrichten (DM) zu erhalten.

Die Space-Ressource ist ein Ort, an dem Personen und Chat-Apps Nachrichten senden, Dateien freigeben und gemeinsam bearbeiten. Es gibt verschiedene Arten von Gruppenbereichen:

  • Direktnachrichten (DNs) sind Unterhaltungen zwischen zwei Nutzern oder einem Nutzer und eine Chat-App.
  • Gruppenchats sind Unterhaltungen zwischen drei oder mehr Nutzern und Chat-Apps.
  • Benannte Gruppenbereiche sind dauerhafte Orte, an denen Nutzer Nachrichten senden, Dateien teilen und zusammenzuarbeiten.

Authentifizierung mit App-Authentifizierung kann eine Chat-App DNs empfangen, Die Chat-App hat in Google Chat Zugriff auf (z. B. Direktnachrichten, in denen es enthalten ist) Authentifizierung mit user authentication gibt DMs zurück, die vom auf die der authentifizierte Nutzer Zugriff hat.

Vorbereitung

Python

  • Python 3.6 oder höher
  • Paketverwaltungstool pip
  • Die neuesten Google-Clientbibliotheken So installieren oder aktualisieren Sie sie: Führen Sie in der Befehlszeile den folgenden Befehl aus:
    pip3 install --upgrade google-api-python-client google-auth-oauthlib
    

Node.js

  • Node.js 14 oder höher
  • Der Parameter npm Paketverwaltungstool
  • Die neuesten Google-Clientbibliotheken So installieren oder aktualisieren Sie sie: Führen Sie in der Befehlszeile den folgenden Befehl aus:
    npm install @google-cloud/local-auth @googleapis/chat
    

Direktnachrichten suchen

Um eine Direktnachricht in Google Chat zu finden, geben Sie Folgendes ein Ihre Anfrage:

  • Geben Sie für die App-Authentifizierung die chat.bot. Mit Nutzerauthentifizierung geben Sie den Autorisierungsbereich chat.spaces.readonly oder chat.spaces an.
  • Rufen Sie die Methode findDirectMessage-Methode für die Ressource User und übergeben den name des anderen Nutzers in der DN zurück. Mit Nutzerauthentifizierung Diese Methode gibt eine DM zwischen dem aufrufenden Nutzer und dem angegebenen Nutzer zurück. Mit App-Authentifizierung, diese Methode gibt eine DM zwischen der aufrufenden App und dem angegebenen Nutzer zurück.
  • Wenn Sie einen Nutzer als Mitglied des Gruppenbereichs hinzufügen möchten, geben Sie users/{user} an, wobei {user} ist entweder der {person_id} für den person aus der People API oder die ID eines user in der Directory API. Wenn beispielsweise die People API-Person resourceName people/123456789 ist, können Sie den Nutzer dem Gruppenbereich hinzufügen, indem Sie einen Mitgliedschaft bei users/123456789 als member.name.

Direktnachrichten mit Nutzerauthentifizierung suchen

So suchen Sie nach einer Direktnachricht mit Nutzerauthentifizierung:

Python

  1. Erstellen Sie in Ihrem Arbeitsverzeichnis eine Datei mit dem Namen chat_space_find_dm_user.py.
  2. Fügen Sie den folgenden Code in chat_space_find_dm_user.py ein:

    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 direct message.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Ersetzen Sie im Code USER durch name eines User in Google Chat.

  4. Erstellen Sie das Beispiel in Ihrem Arbeitsverzeichnis und führen Sie es aus:

    python3 chat_space_find_dm_user.py
    

Node.js

  1. Erstellen Sie in Ihrem Arbeitsverzeichnis eine Datei mit dem Namen find-direct-message-space.js

  2. Fügen Sie den folgenden Code in find-direct-message-space.js ein:

    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. Ersetzen Sie im Code USER durch name eines User in Google Chat.

  4. Führen Sie das Beispiel in Ihrem Arbeitsverzeichnis aus:

    node find-direct-message-space.js
    

Die Chat API gibt eine Instanz von Space in der die angegebene DM begonnen wird.

Direktnachrichten mit App-Authentifizierung finden

So suchen Sie nach einer Direktnachricht mit App-Authentifizierung:

Python

  1. Erstellen Sie in Ihrem Arbeitsverzeichnis eine Datei mit dem Namen chat_space_find_dm_app.py.
  2. Fügen Sie den folgenden Code in chat_space_find_dm_app.py ein:

    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. Ersetzen Sie im Code USER durch name eines User in Google Chat.

  4. Erstellen Sie das Beispiel in Ihrem Arbeitsverzeichnis und führen Sie es aus:

    python3 chat_space_find_dm_app.py
    

Node.js

  1. Erstellen Sie in Ihrem Arbeitsverzeichnis eine Datei mit dem Namen app-find-direct-message-space.js

  2. Fügen Sie den folgenden Code in app-find-direct-message-space.js ein:

    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. Ersetzen Sie im Code USER durch name eines User in Google Chat.

  4. Führen Sie das Beispiel in Ihrem Arbeitsverzeichnis aus:

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

Die Chat API gibt eine Instanz von Space, die Details zur angegebenen DM enthalten.