Lesestatus eines Nutzers für den Gruppenbereich aktualisieren

In diesem Leitfaden wird beschrieben, wie Sie mit der Methode update() auf der Ressource SpaceReadState der Google Chat API Gruppenbereiche als gelesen oder ungelesen markieren.

Die Ressource SpaceReadState ist eine Singleton-Ressource, die Details zur zuletzt gelesenen Nachricht eines bestimmten Nutzers in einem Google Chat-Gruppenbereich enthält.

Vorbereitung

Node.js

Lesestatus des Anrufers für den Gruppenbereich aktualisieren

Wenn Sie den Lesestatus eines Nutzers in einem Gruppenbereich aktualisieren möchten, fügen Sie Folgendes in Ihre Anfrage ein:

  • Geben Sie den Autorisierungsbereich für chat.users.readstate an.
  • Rufen Sie die Methode UpdateSpaceReadState() auf.
  • Übergeben Sie updateMask mit dem Wert lastReadTime.
  • Übergeben Sie spaceReadState als Instanz von SpaceReadState mit folgendem Code:
    • Das Feld name ist auf den zu aktualisierenden Lesestatus des Gruppenbereichs gesetzt. Es enthält eine Nutzer-ID oder einen Alias und eine Gruppenbereichs-ID. Beim Aktualisieren des Lesestatus eines Gruppenbereichs kann nur der Lesestatus des anrufenden Nutzers aktualisiert werden. Dazu kann eine der folgenden Optionen festgelegt werden:
      • Der Alias für me. Beispiel: users/me/spaces/SPACE/spaceReadState
      • Die Workspace-E-Mail-Adresse des aufrufenden Nutzers. Beispiel: users/user@example.com/spaces/SPACE/spaceReadState
      • Die Nutzer-ID des anrufenden Nutzers. Beispiel: users/USER/spaces/SPACE/spaceReadState
    • Das Feld lastReadTime ist auf den aktualisierten Wert der Zeit festgelegt, zu der der Lesestatus des Nutzers für den Gruppenbereich aktualisiert wurde. In der Regel entspricht dies entweder dem Zeitstempel der zuletzt gelesenen Nachricht oder einem vom Nutzer angegebenen Zeitstempel, um die zuletzt gelesene Position in einem Bereich zu markieren. Wenn lastReadTime vor dem Zeitpunkt der letzten Nachrichtenerstellung liegt, wird der Bereich in der UI als ungelesen angezeigt. Wenn Sie den Gruppenbereich als gelesen markieren möchten, setzen Sie lastReadTime auf einen Wert, der später (größer) als die Erstellungszeit der letzten Nachricht ist. Der Wert von lastReadTime wird auf die Zeit der letzten Nachrichtenerstellung festgelegt. Der Lesestatus des Gruppenbereichs wirkt sich nur auf den Lesestatus von Nachrichten aus, die in der Unterhaltung der obersten Ebene des Gruppenbereichs sichtbar sind. Antworten in Threads sind von diesem Zeitstempel nicht betroffen und basieren stattdessen auf dem Lesestatus des Threads.

Im folgenden Beispiel wird der Lesestatus des aufrufenden Nutzers aktualisiert:

Node.js

chat/client-libraries/cloud/update-space-read-state-user-cred.js
import {createClientWithUserCredentials} from './authentication-utils.js';

const USER_AUTH_OAUTH_SCOPES = ['https://www.googleapis.com/auth/chat.users.readstate'];

// This sample shows how to update a space read state for the calling user
async function main() {
  // Create a client
  const chatClient = await createClientWithUserCredentials(USER_AUTH_OAUTH_SCOPES);

  // Initialize request argument(s)
  const timestamp = new Date('2000-01-01').getTime();
  const request = {
    spaceReadState: {
      // Replace SPACE_NAME here
      name: 'users/me/spaces/SPACE_NAME/spaceReadState',
      lastReadTime: {
        seconds: Math.floor(timestamp / 1000),
        nanos: (timestamp % 1000) * 1000000
      }
    },
    updateMask: {
      // The field paths to update.
      paths: ['last_read_time']
    }
  };

  // Make the request
  const response = await chatClient.updateSpaceReadState(request);

  // Handle the response
  console.log(response);
}

main().catch(console.error);

Wenn Sie dieses Beispiel ausführen möchten, ersetzen Sie SPACE_NAME durch die ID aus der name des Gruppenbereichs. Sie können die ID durch Aufrufen der Methode ListSpaces() oder aus der URL des Gruppenbereichs abrufen.

Die Google Chat API aktualisiert den Lesestatus des angegebenen Gruppenbereichs und gibt eine Instanz von SpaceReadState zurück.