Details zum Lesestatus eines Nutzers zum Gruppenbereich abrufen

In dieser Anleitung wird erläutert, wie Sie mit der Methode getSpaceReadState in der Ressource SpaceReadState der Google Chat API Details zum Lesestatus eines Nutzers in einem Gruppenbereich abrufen können. Informationen zum Abrufen des Lesestatus einer Nachricht in einem Nachrichtenthread finden Sie unter Details zum Lesestatus eines Nutzers abrufen.

Die Ressource SpaceReadState ist eine Singleton-Ressource, die Details zu der zuletzt gelesenen Nachricht eines bestimmten Nutzers in einem Google Chat-Bereich darstellt.

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
    
  • 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. Um Details zum Lesestatus eines Nutzers in einem Bereich abzurufen, ist eine Nutzerauthentifizierung mit dem Autorisierungsbereich chat.users.readstate oder chat.users.readstate.readonly erforderlich.

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. Um Details zum Lesestatus eines Nutzers in einem Bereich abzurufen, ist eine Nutzerauthentifizierung mit dem Autorisierungsbereich chat.users.readstate oder chat.users.readstate.readonly erforderlich.

Apps Script

  • Ein Google Workspace-Konto mit Zugriff auf Google Chat.
  • Eine veröffentlichte Chat-App. Folgen Sie dieser quickstart, um eine Chat-App zu erstellen.
  • Für die Chat-App konfigurierte Autorisierung. Um Details zum Lesestatus eines Nutzers in einem Bereich abzurufen, ist eine Nutzerauthentifizierung mit dem Autorisierungsbereich chat.users.readstate oder chat.users.readstate.readonly erforderlich.

Lesestatus des aufrufenden Nutzers für Bereich abrufen

Um Details zum Lesestatus eines Nutzers in einem Bereich zu erhalten, fügen Sie Ihrer Anfrage Folgendes hinzu:

  • Geben Sie den Autorisierungsbereich chat.users.readstate oder chat.users.readstate.readonly an.
  • Rufen Sie die Methode getSpaceReadState für die Ressource SpaceReadState auf.
  • Übergeben Sie den name des abzurufenden Lesestatus des Gruppenbereichs, der eine Nutzer-ID oder einen Alias und eine Gruppenbereichs-ID enthält. Durch das Abrufen des Lesestatus für den Gruppenbereich kann nur der Lesestatus des aufrufenden Nutzers abgerufen werden. Dazu legen Sie einen der folgenden Werte fest:
    • Der Alias me. Beispiel: users/me/spaces/SPACE/spaceReadState
    • Die Workspace-E-Mail-Adresse des anrufenden Nutzers. Beispiel: users/user@example.com/spaces/SPACE/spaceReadState
    • Die Nutzer-ID des aufrufenden Nutzers. Beispiel: users/USER/spaces/SPACE/spaceReadState

Im folgenden Beispiel wird der Lesestatus des aufrufenden Nutzers für den Bereich abgerufen:

Python

  1. Erstellen Sie in Ihrem Arbeitsverzeichnis eine Datei mit dem Namen chat_spaceReadState_get.py.
  2. Fügen Sie den folgenden Code in chat_spaceReadState_get.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.users.readstate.readonly"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then gets the space read state for the calling 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.users().spaces().getSpaceReadState(
    
            # The space read state to get.
            #
            # Replace USER with the calling user's ID, Workspace email,
            # or the alias me.
            #
            # Replace SPACE with a space name.
            # Obtain the space name from the spaces resource of Chat API,
            # or from a space's URL.
            name='users/me/spaces/SPACE/spaceReadState'
    
          ).execute()
    
        # Prints the API's response.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Ersetzen Sie im Code Folgendes:

    • SPACE: Der Name eines Gruppenbereichs, den Sie über die Methode spaces.list in der Chat API oder aus der URL eines Gruppenbereichs abrufen können.
  4. Erstellen Sie das Beispiel in Ihrem Arbeitsverzeichnis und führen Sie es aus:

    python3 chat_spaceReadState_get.py
    

Node.js

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

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * Authenticates with Chat API via user credentials,
    * then gets the space read state for the calling user.
    * @return {!Promise<!Object>}
    */
    async function getSpaceReadState() {
    
      /**
      * Authenticate with Google Workspace
      * and get user authorization.
      */
      const scopes = [
        'https://www.googleapis.com/auth/chat.users.readstate.readonly',
      ];
    
      const authClient =
          await authenticate({scopes, keyfilePath: 'client_secrets.json'});
    
      /**
      * Build a service endpoint for Chat API.
      */
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      /**
      * Use the service endpoint to call Chat API.
      */
      return await chatClient.users.spaces.getSpaceReadState({
    
        /**
        * The space read state to get.
        *
        * Replace USER with the calling user's ID, Workspace email,
        * or the alias me.
        *
        * Replace SPACE with a space name.
        * Obtain the space name from the spaces resource of Chat API,
        * or from a space's URL.
        */
        name: 'users/me/spaces/SPACE/spaceReadState'
      });
    }
    
    /**
    * Use the service endpoint to call Chat API.
    */
    getSpaceReadState().then(console.log);
    
  3. Ersetzen Sie im Code Folgendes:

    • SPACE: Der Name eines Gruppenbereichs, den Sie über die Methode spaces.list in der Chat API oder aus der URL eines Gruppenbereichs abrufen können.
  4. Erstellen Sie das Beispiel in Ihrem Arbeitsverzeichnis und führen Sie es aus:

    node chat_spaceReadState_get.js
    

Apps Script

In diesem Beispiel wird die Chat API mit dem Advanced Chat Service aufgerufen.

  1. Fügen Sie der Datei appsscript.json des Apps Script-Projekts den Autorisierungsbereich chat.users.readstate.readonly hinzu:

    "oauthScopes": [
      "https://www.googleapis.com/auth/chat.users.readstate.readonly"
    ]
    
  2. Fügen Sie dem Code des Apps Script-Projekts eine Funktion wie diese hinzu:

    /**
    * Authenticates with Chat API via user credentials,
    * then gets the space read state for the calling user.
    * @param {string} spaceReadStateName The resource name of the space read state.
    */
    function getSpaceReadState(spaceReadStateName) {
      try {
        Chat.Users.Spaces.getSpaceReadState(spaceReadStateName);
      } catch (err) {
        // TODO (developer) - Handle exception
        console.log('Failed to get read state with error %s', err.message);
      }
    }
    

Die Google Chat API ruft den angegebenen Lesestatus für den Bereich ab und gibt eine Instanz der Ressource SpaceReadState zurück.