Lesestatus eines Nutzers für den Gruppenbereich aktualisieren

In diesem Leitfaden wird erläutert, wie Sie die Methode update() für die Ressource SpaceReadState der Google Chat API verwenden, um Bereiche als gelesen oder ungelesen zu markieren.

Die SpaceReadState-Ressource 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 im Gruppenbereich aktualisieren

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

  • Geben Sie den chat.users.readstate-Autorisierungsbereich an.
  • Rufen Sie die Methode UpdateSpaceReadState() auf.
  • Übergeben Sie updateMask mit dem Wert lastReadTime.
  • Übergeben Sie spaceReadState als Instanz von SpaceReadState mit Folgendem:
    • Das Feld name ist auf den zu aktualisierenden Lesestatus des Bereichs festgelegt. Es enthält eine Nutzer-ID oder einen Alias und eine Bereichs-ID. Das Aktualisieren des Lesestatus von Bereichen unterstützt nur das Aktualisieren des Lesestatus des anrufenden Nutzers, der durch Festlegen einer der folgenden Optionen angegeben werden kann:
      • Der Alias me. Beispiel: users/me/spaces/SPACE/spaceReadState
      • Die Google 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
    • Das Feld lastReadTime ist auf den aktualisierten Wert der Zeit festgelegt, zu der der Lesestatus des Bereichs des Nutzers aktualisiert wurde. Normalerweise entspricht dies entweder dem Zeitstempel der letzten gelesenen Nachricht oder einem vom Nutzer angegebenen Zeitstempel, um die letzte gelesene Position in einem Bereich zu markieren. Wenn lastReadTime vor dem Zeitpunkt der Erstellung der letzten Nachricht liegt, wird der Gruppenbereich in der Benutzeroberfläche als ungelesen angezeigt. Wenn Sie den Gruppenbereich als gelesen markieren möchten, legen Sie lastReadTime auf einen beliebigen Wert fest, der später (größer) als die Erstellungszeit der letzten Nachricht ist. Die lastReadTime wird so angepasst, dass sie mit der Erstellungszeit der letzten Nachricht übereinstimmt. 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. Stattdessen wird der Lesestatus des Threads berücksichtigt.

Im folgenden Beispiel wird der Lesestatus des Anrufers für den Gruppenbereich 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);

Ersetzen Sie SPACE_NAME durch die ID aus der name des Bereichs, um dieses Beispiel auszuführen. Sie können die ID abrufen, indem Sie die Methode ListSpaces() aufrufen oder die URL des Bereichs verwenden.

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