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 một không gian.

Tài nguyên SpaceEvent đại diện cho sự 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 thể hiện cảm xúc và 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 trường eventTypepayload của tài liệu tham khảo về tài nguyên SpaceEvent.

Bạn có thể liệt kê các sự kiện tối đa 28 ngày trước thời điểm yêu cầu. Máy chủ 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 trong không gian, máy chủ sẽ trả về những tài nguyên Membership chứa thông tin mới nhất về tư cách thành viên. Nếu các thành viên mới bị xoá trong khoảng thời gian yêu cầu, 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 tính năng xác thực người dùng. Để liệt kê các sự kiện từ 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

Python

  • Python 3.6 trở lên
  • Công cụ quản lý gói pip
  • Các thư viện ứng dụng mới nhất của Google dành cho Python. Để cài đặt hoặc cập nhật các công cụ này, hãy chạy lệnh sau trong giao diện dòng lệnh của bạn:

    pip3 install --upgrade google-api-python-client google-auth-oauthlib
    
  • Một dự án trên Google Cloud đã bật và thiết lập API Google Chat. Để biết các bước, hãy xem bài viết Tạo ứng dụng Google Chat.
  • Đã định cấu hình hoạt động uỷ quyền cho ứng dụng Chat. Danh sách các tài nguyên SpaceEvent hỗ trợ các phương thức xác thực sau:

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

Để liệt kê sự kiện trong không gian từ một phòng Chat, hãy làm như sau:

  • Gọi phương thức list trên tài nguyên SpaceEvent.
  • Chỉ định các loại sự kiện cần liệt kê bằng trường filter. 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 trường eventType.
  • Với tính năng xác thực người dùng, hãy 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. Cách tốt nhất là 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 một phạm vi, hãy xem phần Tổng quan về việc xác thực và uỷ quyền.

Trong mã mẫu sau đây, bạn liệt kê các sự kiện về thành viên và tin nhắn mới trong một không gian.

Python

  1. Trong thư mục đang làm việc, hãy tạo một tệp có tên chat_space_event_list.py.
  2. Đưa mã sau vào chat_space_event_list.py:

    """Lists SpaceEvent resources from the Chat API."""
    
    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # Define your app's authorization scopes.
    # When modifying these scopes, delete the file token.json, if it exists.
    SCOPES = ["https://www.googleapis.com/auth/chat.memberships.readonly",
    "https://www.googleapis.com/auth/chat.messages.readonly"]
    
    # Authenticate with Google Workspace
    # and get user authorization.
    flow = InstalledAppFlow.from_client_secrets_file(
                'client_secrets.json', SCOPES)
    creds = flow.run_local_server()
    
    # Build a service endpoint for Chat API.
    chat = build(
      'chat',
      'v1',
      credentials=creds,
    )
    
    # Use the service endpoint to call Chat API.
    result = chat.spaces().spaceEvents().list(
    
        # The space from which to list events.
        #
        # Replace SPACE with a space name.
        # Obtain the space name from the spaces resource of Chat API,
        # or from a space's URL.
        parent='spaces/SPACE',
    
        # A required filter. Filters and returns events about new memberships and messages
        filter='event_types:"google.workspace.chat.membership.v1.created" OR event_types:"google.workspace.chat.message.v1.created"'
    
    ).execute()
    
    # Prints details about the created space events.
    print(result)
    
  3. Trong mã, hãy thay thế các đoạn mã sau:

  4. Trong thư mục đang làm việc, hãy tạo và chạy mẫu:

    python3 chat_space_event_list.py
    

API Chat trả về danh sách các sự kiện tài nguyên SpaceEvent về thành viên và tin nhắn mới.

Tuỳ chỉnh tính năng phân trang

Nếu muốn, hãy truyền các tham số truy vấn sau để tuỳ chỉnh tính năng phân trang:

  • pageSize: Số lượng tài nguyên SpaceEvent tối đa cần trả về. Dịch vụ có thể trả về ít hơn giá trị này. Giá trị âm sẽ trả về lỗi INVALID_ARGUMENT.
  • pageToken: Mã thông báo trang, nhận được từ lệnh gọi sự kiện danh sách trước đó. Cung cấp mã thông báo này để truy xuất trang tiếp theo. Khi phân trang, giá trị bộ lọc phải khớp với lệnh gọi đã cung cấp mã thông báo trang. Việc chuyển một giá trị khác có thể dẫn đến kết quả không mong muốn.