Обновление состояния чтения пространства пользователя

В этом руководстве объясняется, как использовать метод update() ресурса SpaceReadState API Google Chat для пометки пространств как прочитанных или непрочитанных.

Ресурс SpaceReadState — это ресурс-одиночка, представляющий подробную информацию о последнем прочитанном сообщении указанного пользователя в пространстве Google Chat.

Предварительные требования

Node.js

Обновить состояние чтения пространства вызывающего пользователя.

Чтобы обновить состояние чтения пользователя в пространстве, добавьте в запрос следующее:

  • Укажите область авторизации chat.users.readstate .
  • Вызовите метод UpdateSpaceReadState() .
  • Передайте в функцию updateMask значение lastReadTime .
  • Передайте spaceReadState в виде экземпляра класса SpaceReadState со следующим содержимым:
    • Поле name задается для обновления состояния чтения пространства, которое включает идентификатор пользователя или псевдоним и идентификатор пространства. Обновление состояния чтения пространства поддерживает обновление только состояния чтения вызывающего пользователя, которое можно указать, задав один из следующих параметров:
      • Псевдоним me . Например, users/me/spaces/ SPACE /spaceReadState .
      • Адрес электронной почты пользователя, вызывающего соединение, указан в соответствующем поле Workspace. Например, users/user@example.com/spaces/ SPACE /spaceReadState .
      • Идентификатор пользователя, вызывающего соединение. Например, users/ USER /spaces/ SPACE /spaceReadState .
    • Поле lastReadTime устанавливается в значение, соответствующее обновлению времени, когда было изменено состояние чтения в пространстве пользователя. Обычно это соответствует либо метке времени последнего прочитанного сообщения, либо метке времени, указанной пользователем для обозначения последней позиции чтения в пространстве. Если lastReadTime меньше времени создания последнего сообщения, пространство отображается как непрочитанное в пользовательском интерфейсе. Чтобы пометить пространство как прочитанное, установите lastReadTime на любое значение, большее, чем время создания последнего сообщения. Значение lastReadTime будет принудительно установлено в соответствии со временем создания последнего сообщения. Обратите внимание, что состояние чтения в пространстве влияет только на состояние чтения сообщений, видимых в диалоге верхнего уровня пространства. Ответы в цепочках сообщений не зависят от этой метки времени и вместо этого полагаются на состояние чтения в цепочке сообщений.

В следующем примере обновляется состояние чтения пространства вызывающего пользователя:

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

Для запуска этого примера замените SPACE_NAME на идентификатор из name пространства. Вы можете получить идентификатор, вызвав метод ListSpaces() или из URL-адреса пространства.

API Google Chat обновляет указанное состояние чтения пространства и возвращает экземпляр объекта SpaceReadState .