Liệt kê sự kiện trong một phòng Google Chat

Hướng dẫn này giải thích cách sử dụng phương thức list() trên tài nguyên SpaceEvent của API Google Chat để liệt kê các thay đổi đối với tài nguyên trong không gian.

Tài nguyên SpaceEvent thể hiện một thay đổi đối với không gian mục tiêu, bao gồm cả các tài nguyên con của không gian đó, chẳng hạn như tin nhắn, lượt phản ứng và gói thành viên. Để biết thêm thông tin về danh sách các loại sự kiện và tải trọng sự kiện được hỗ trợ, hãy xem các trường eventTypepayload trong tài liệu tham khảo tài nguyên SpaceEvent.

Bạn có thể đăng sự kiện tối đa 28 ngày trước thời điểm yêu cầu. Máy chủ sẽ trả về các sự kiện chứa phiên bản mới nhất của tài nguyên bị ảnh hưởng. Ví dụ: nếu bạn liệt kê các sự kiện về thành viên mới của không gian, thì máy chủ sẽ trả về các tài nguyên Membership chứa thông tin thành viên mới nhất. Nếu các thành viên mới bị xoá trong khoảng thời gian yêu cầu, thì tải trọng sự kiện sẽ chứa một tài nguyên Membership trống.

Để gọi phương thức này, bạn phải sử dụng quy trình xác thực người dùng. Để liệt kê các sự kiện trong một không gian, người dùng đã xác thực phải là thành viên của không gian đó.

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

Node.js

Liệt kê các sự kiện của không gian

Để liệt kê các sự kiện trong không gian từ một phòng Chat, hãy truyền nội dung sau vào yêu cầu của bạn:

  • Chỉ định một hoặc nhiều phạm vi uỷ quyền để hỗ trợ từng loại sự kiện trong yêu cầu của bạn. Tốt nhất là bạn nên chọn phạm vi hạn chế nhất mà vẫn cho phép ứng dụng của bạn hoạt động. Để chọn phạm vi, hãy xem phần Tổng quan về xác thực và uỷ quyền.

  • Gọi phương thức ListSpaceEvents(), truyền filter của các loại sự kiện để liệt kê. Bạn phải chỉ định ít nhất một loại sự kiện và cũng có thể lọc theo ngày. Để biết danh sách các loại sự kiện được hỗ trợ, hãy xem tài liệu tham khảo về trường eventType của tài nguyên SpaceEvent.

Ví dụ sau đây liệt kê các sự kiện về gói thành viên mới và tin nhắn trong một không gian:

Node.js

chat/client-libraries/cloud/list-space-events-user-cred.js
import {createClientWithUserCredentials} from './authentication-utils.js';

// Authorization scopes based on the event types
const USER_AUTH_OAUTH_SCOPES = [
  'https://www.googleapis.com/auth/chat.memberships.readonly',
  'https://www.googleapis.com/auth/chat.messages.readonly'
];

// This sample shows how to list space events with user credential
async function main() {
  // Create a client
  const chatClient = await createClientWithUserCredentials(USER_AUTH_OAUTH_SCOPES);

  // Initialize request argument(s)
  const request = {
    // Replace SPACE_NAME here
    parent: 'spaces/SPACE_NAME',
    // A required filter. Filters events about new memberships and messages
    filter: 'eventTypes:"google.workspace.chat.membership.v1.created" OR eventTypes:"google.workspace.chat.message.v1.created"'
  };

  // Make the request
  const pageResult = chatClient.listSpaceEventsAsync(request);

  // Handle the response. Iterating over pageResult will yield results and
  // resolve additional pages automatically.
  for await (const response of pageResult) {
    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.

Chat API trả về một danh sách danh sách sự kiện trong phòng được phân trang về các tin nhắn và gói thành viên mới.