Cập nhật trạng thái đọc không gian của người dùng

Hướng dẫn này giải thích cách sử dụng phương thức update() trên tài nguyên SpaceReadState của Google Chat API để đánh dấu không gian là đã đọc hoặc chưa đọc.

Tài nguyên SpaceReadState là một tài nguyên singleton (đơn thể) đại diện cho thông tin chi tiết về tin nhắn gần đây nhất mà một người dùng cụ thể đã đọc trong một phòng Chat trên Google Chat.

Điều kiện tiên quyết

Node.js

Cập nhật trạng thái đọc không gian của người dùng gọi

Để cập nhật trạng thái đã đọc của người dùng trong một Không gian, hãy đưa thông tin sau vào yêu cầu:

  • Chỉ định phạm vi uỷ quyền chat.users.readstate.
  • Gọi UpdateSpaceReadState() phương thức.
  • Truyền updateMask với giá trị lastReadTime.
  • Truyền spaceReadState dưới dạng một thực thể của SpaceReadState với các thông tin sau:
    • Trường name được đặt thành trạng thái đọc không gian để cập nhật, bao gồm mã người dùng hoặc email đại diện và mã không gian. Việc cập nhật trạng thái đọc không gian chỉ hỗ trợ cập nhật trạng thái đọc của người dùng gọi. Bạn có thể chỉ định trạng thái này bằng cách đặt một trong những thông tin sau:
      • Email đại diện me. Ví dụ: users/me/spaces/SPACE/spaceReadState.
      • Địa chỉ email Workspace của người dùng gọi. Ví dụ: users/user@example.com/spaces/SPACE/spaceReadState.
      • Mã người dùng của người dùng gọi. Ví dụ: users/USER/spaces/SPACE/spaceReadState.
    • Trường lastReadTime được đặt thành giá trị đã cập nhật của thời gian khi trạng thái đã đọc không gian của người dùng được cập nhật. Thông thường, trường này tương ứng với dấu thời gian của tin nhắn gần đây nhất đã đọc hoặc dấu thời gian do người dùng chỉ định để đánh dấu vị trí đọc gần đây nhất trong một không gian. Khi lastReadTime trước thời gian tạo tin nhắn mới nhất, không gian sẽ xuất hiện dưới dạng chưa đọc trong giao diện người dùng. Để đánh dấu không gian là đã đọc, hãy đặt lastReadTime thành bất kỳ giá trị nào muộn hơn (lớn hơn) thời gian tạo tin nhắn mới nhất. lastReadTime được ép buộc để khớp với thời gian tạo tin nhắn mới nhất. Xin lưu ý rằng trạng thái đọc không gian chỉ ảnh hưởng đến trạng thái đọc của những tin nhắn hiển thị trong cuộc trò chuyện cấp cao nhất của không gian. Các tin nhắn trả lời trong chuỗi thảo luận không bị ảnh hưởng bởi dấu thời gian này mà thay vào đó, dựa vào trạng thái đọc chuỗi thảo luận.

Ví dụ sau đây cập nhật trạng thái đã đọc không gian của người dùng gọi:

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

Để chạy mẫu này, hãy thay thế SPACE_NAME bằng mã nhận dạng từ của không gian name. Bạn có thể lấy mã nhận dạng bằng cách gọi ListSpaces() phương thức hoặc từ URL của không gian.

Google Chat API cập nhật trạng thái đọc không gian đã chỉ định và trả về một thực thể của SpaceReadState.