Gruppenbereich für Direktnachrichten (DN) suchen

In dieser Anleitung wird erläutert, wie Sie die Methode findDirectMessage in der Ressource Space der Google Chat API verwenden, um Details zu einem Bereich für Direktnachrichten (DM) abzurufen.

Die Ressource Space stellt einen Ort dar, an dem Nutzer und Chat-Apps Nachrichten senden, Dateien freigeben und zusammenarbeiten können. Es gibt verschiedene Arten von Gruppenbereichen:

  • Direktnachrichten (DMs) sind Unterhaltungen zwischen zwei Nutzern oder einem Nutzer und einer Chat-App.
  • Gruppenchats sind Unterhaltungen zwischen drei oder mehr Nutzern und Chat-Apps.
  • Benannte Gruppenbereiche sind persistente Orte, an denen Nutzer Nachrichten senden, Dateien freigeben und zusammenarbeiten.

Durch die Authentifizierung über die App-Authentifizierung kann eine Chat-Anwendung DMs abrufen, auf die sie in Google Chat Zugriff hat (z. B. DNs, zu denen sie gehört). Bei der Authentifizierung über die Nutzerauthentifizierung werden DMs zurückgegeben, auf die der authentifizierte Nutzer Zugriff hat.

Voraussetzungen

Python

  • Python 3.6 oder höher
  • Das Paketverwaltungstool pip
  • Die aktuellen Google-Clientbibliotheken für Python. Führen Sie den folgenden Befehl in der Befehlszeile aus, um sie zu installieren oder zu aktualisieren:

    pip3 install --upgrade google-api-python-client google-auth-oauthlib google-auth
    
  • Ein Google Cloud-Projekt, in dem die Google Chat API aktiviert und konfiguriert ist. Eine entsprechende Anleitung finden Sie unter Google Chat-App erstellen.
  • Für die Chat-App konfigurierte Autorisierung. Das Suchen einer Direktnachricht unterstützt Folgendes:

Node.js

  • Node.js und npm
  • Aktuelle Google-Clientbibliotheken für Node.js Führen Sie den folgenden Befehl über die Befehlszeile aus, um sie zu installieren:

    npm install @google-cloud/local-auth @googleapis/chat
    
  • Ein Google Cloud-Projekt, in dem die Google Chat API aktiviert und konfiguriert ist. Eine entsprechende Anleitung finden Sie unter Google Chat-App erstellen.
  • Für die Chat-App konfigurierte Autorisierung. Das Suchen einer Direktnachricht unterstützt Folgendes:

Direktnachrichten suchen

Übergeben Sie in Ihrer Anfrage Folgendes, um eine Direktnachricht in Google Chat zu suchen:

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

Direktnachrichten mit Nutzerauthentifizierung finden

So finden Sie eine Direktnachricht mit der 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 created membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Ersetzen Sie im Code USER durch den name einer 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 den name einer 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 zurück, die Details zur angegebenen DM enthält.

Direktnachrichten mit App-Authentifizierung finden

So finden Sie eine Direktnachricht mit der 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 den name einer 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 den name einer 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 zurück, die Details zur angegebenen DM enthält.