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

В этом руководстве объясняется, как использовать метод 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);
}

main().catch(console.error);

Чтобы запустить этот пример, замените SPACE_NAME на идентификатор из name пространства. Идентификатор можно получить, вызвав метод ListSpaces() или указав URL пространства.

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