Aktualizowanie stanu odczytu pokoju użytkownika

Z tego przewodnika dowiesz się, jak za pomocą metody update() w zasobie SpaceReadState interfejsu Google Chat API oznaczać pokoje jako przeczytane lub nieprzeczytane.

Zasób SpaceReadState to zasób singleton, który zawiera szczegółowe informacje o ostatniej przeczytanej wiadomości określonego użytkownika w pokoju Google Chat.

Wymagania wstępne

Node.js

Aktualizowanie stanu przeczytania pokoju przez użytkownika wywołującego

Aby zaktualizować stan przeczytania użytkownika w pokoju, uwzględnij w żądaniu te elementy:

  • Określ zakres autoryzacji chat.users.readstate.
  • Wywołaj UpdateSpaceReadState() metodę.
  • Przekaż updateMask z wartością lastReadTime.
  • Przekaż spaceReadState jako instancję SpaceReadState z tymi elementami:
    • Pole name ustawione na stan przeczytania pokoju, który ma zostać zaktualizowany, w tym identyfikator użytkownika lub alias oraz identyfikator pokoju. Aktualizowanie stanu przeczytania pokoju obsługuje tylko aktualizowanie stanu przeczytania użytkownika wywołującego, co można określić, ustawiając jedną z tych opcji:
      • Alias me. Na przykład, users/me/spaces/SPACE/spaceReadState.
      • Adres e-mail użytkownika wywołującego w Workspace. Na przykład, users/user@example.com/spaces/SPACE/spaceReadState.
      • Identyfikator użytkownika wywołującego. Na przykład, users/USER/spaces/SPACE/spaceReadState.
    • Pole lastReadTime ustawione na zaktualizowaną wartość czasu, w którym zaktualizowano stan przeczytania pokoju przez użytkownika. Zwykle odpowiada to sygnaturze czasowej ostatniej przeczytanej wiadomości lub sygnaturze czasowej określonej przez użytkownika w celu oznaczenia ostatniej przeczytanej pozycji w pokoju. Gdy lastReadTime jest wcześniejsza niż czas utworzenia najnowszej wiadomości, pokój jest wyświetlany w interfejsie jako nieprzeczytany. Aby oznaczyć pokój jako przeczytany, ustaw lastReadTime na dowolną wartość późniejszą (większą) niż czas utworzenia najnowszej wiadomości. Wartość lastReadTime jest dostosowywana do czasu utworzenia najnowszej wiadomości. Pamiętaj, że stan przeczytania pokoju wpływa tylko na stan przeczytania wiadomości widocznych w rozmowie najwyższego poziomu w pokoju. Odpowiedzi w wątkach nie są objęte tą sygnaturą czasową, ale zależą od stanu przeczytania wątku.

Ten przykład aktualizuje stan przeczytania pokoju przez użytkownika wywołującego:

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);
}

await main();

Aby uruchomić ten przykład, zastąp SPACE_NAME identyfikatorem z pola name. Identyfikator możesz uzyskać, wywołując ListSpaces() metodę lub z adresu URL pokoju.

Interfejs Google Chat API aktualizuje określony stan przeczytania pokoju i zwraca instancję SpaceReadState.