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 API Google Chat để đánh dấu các không gian là đã đọc hoặc chưa đọc.

Tài nguyên SpaceReadState là một tài nguyên singleton đại diện cho thông tin chi tiết về tin nhắn đã đọc gần đây nhất của một người dùng cụ thể trong không gian 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 không gian, hãy thêm nội dung sau vào yêu cầu:

  • Chỉ định phạm vi uỷ quyền chat.users.readstate.
  • Gọi phương thức UpdateSpaceReadState().
  • Truyền updateMask với giá trị lastReadTime.
  • Truyền spaceReadState dưới dạng một thực thể của SpaceReadState bằng cách sau:
    • Trường name được đặt thành trạng thái đọc không gian để cập nhật, bao gồm mã nhận dạng người dùng hoặc bí danh và mã nhận dạng 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 giá trị sau:
      • Bí danh 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ã nhận dạng người dùng của người dùng thực hiện lệnh 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 cập nhật trạng thái đọc không gian của người dùng. Thông thường, giá trị này tương ứng với dấu thời gian của thư đã đọc gần đây nhất 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 nằm 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) so với thời gian tạo thông báo mới nhất. lastReadTime được buộc phải khớp với thời gian tạo thông báo mới nhất. Xin lưu ý rằng trạng thái đã đọc của không gian chỉ ảnh hưởng đến trạng thái đã đọc của các tin nhắn xuất hiện trong cuộc trò chuyện cấp cao nhất của không gian. Dấu thời gian này không ảnh hưởng đến các thư trả lời trong chuỗi thư mà thay vào đó, các thư trả lời này sẽ dựa vào trạng thái đọc chuỗi thư.

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

main().catch(console.error);

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

API Google Chat sẽ 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.