Xem thông tin chi tiết về một sự kiện trong phòng Google Chat

Hướng dẫn này giải thích cách sử dụng phương thức get() trên tài nguyên SpaceEvent của Google Chat API để lấy thông tin chi tiết về một sự kiện trong không gian Google Chat.

Tài nguyên SpaceEvent biểu thị một thay đổi đối với không gian hoặ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à thành viên. Để tìm hiểu về các loại sự kiện được hỗ trợ, hãy xem trường eventType của tài liệu tham khảo về tài nguyên SpaceEvent.

Bạn có thể yêu cầu các sự kiện trong vòng 28 ngày trước thời điểm yêu cầu. Sự kiện này chứa phiên bản mới nhất của tài nguyên đã thay đổi. Ví dụ: nếu bạn yêu cầu một sự kiện về một tin nhắn mới nhưng sau đó tin nhắn này được cập nhật, thì máy chủ sẽ trả về tài nguyên Message đã cập nhật trong tải trọng sự kiện.

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

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

Node.js

Python

Lấy thông tin chi tiết về một sự kiện trong không gian (xác thực người dùng)

Để biết thông tin chi tiết về một sự kiện trong không gian trên Google Chat, hãy truyền các thông tin sau trong yêu cầu của bạn:

  • Chỉ định một phạm vi uỷ quyền hỗ trợ loại sự kiện trong yêu cầu của bạn. Theo phương pháp hay nhất, hãy chọn phạm vi hạn chế nhất nhưng vẫn cho phép ứng dụng của bạn hoạt động.
  • Gọi phương thức GetSpaceEvent(), truyền name của sự kiện không gian cần nhận.

Ví dụ sau đây lấy một sự kiện về không gian:

Node.js

Mẫu mã Node.js này sử dụng Chat RPC API.

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

// Replace SCOPE_NAME here with an authorization scope based on the event type
const USER_AUTH_OAUTH_SCOPES = ['SCOPE_NAME'];

// This sample shows how to get space event 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 and SPACE_EVENT_NAME here
    name: 'spaces/SPACE_NAME/spaceEvents/SPACE_EVENT_NAME',
  };

  // Make the request
  const response = await chatClient.getSpaceEvent(request);

  // Handle the response
  console.log(response);
}

await main();

Để chạy mẫu này, hãy thay thế các giá trị sau:

  • SCOPE_NAME: một phạm vi uỷ quyền dựa trên loại sự kiện. Ví dụ: nếu bạn đang nhận được một sự kiện không gian về một thành viên mới, hãy sử dụng phạm vi chat.memberships.readonly, được định dạng là https://www.googleapis.com/auth/chat.memberships.readonly. Bạn có thể lấy loại sự kiện từ phương thức ListSpaceEvents(). Để tìm hiểu cách sử dụng phương thức này, hãy xem bài viết Liệt kê các sự kiện trong một không gian.
  • SPACE_NAME: 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.
  • SPACE_EVENT_NAME: mã nhận dạng từ name của sự kiện không gian. Bạn có thể lấy mã nhận dạng từ phương thức ListSpaceEvents(). Để tìm hiểu cách sử dụng phương thức này, hãy xem bài viết Liệt kê các sự kiện trong một không gian.

Chat API trả về một phiên bản của SpaceEvent kèm theo thông tin chi tiết về sự kiện.

Lấy thông tin chi tiết về một sự kiện trong không gian (Xác thực ứng dụng Chat)

Để xác thực ứng dụng, bạn cần có sự phê duyệt của quản trị viên một lần.

Để biết thông tin chi tiết về một sự kiện trong không gian từ một không gian có xác thực ứng dụng bằng Chat REST API, hãy truyền các thông tin sau trong 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 nhưng vẫn cho phép ứng dụng của bạn hoạt động. Để tìm hiểu thêm về cách chọn phạm vi, hãy xem bài viết Tổng quan về quy trình xác thực và uỷ quyền.
    • https://www.googleapis.com/auth/chat.app.memberships
    • https://www.googleapis.com/auth/chat.app.messages.readonly
    • https://www.googleapis.com/auth/chat.app.spaces
  • Gọi phương thức get trên tài nguyên spaceEvents.
  • Truyền name của không gian để lấy thông tin chi tiết về sự kiện.

Tạo một khoá API

Để gọi một phương thức API trong bản dùng thử cho nhà phát triển, bạn phải sử dụng một phiên bản không công khai của tài liệu khám phá API trong bản dùng thử cho nhà phát triển. Để xác thực yêu cầu, bạn phải truyền một khoá API.

Để tạo Khoá API, hãy mở dự án Google Cloud của ứng dụng rồi làm như sau:

  1. Trong bảng điều khiển Google Cloud, hãy chuyển đến phần Trình đơn > API và Dịch vụ > Thông tin xác thực.

    Chuyển đến phần Thông tin đăng nhập

  2. Nhấp vào Tạo thông tin xác thực > Khoá API.
  3. Khoá API mới của bạn sẽ xuất hiện.
    • Nhấp vào biểu tượng Sao chép để sao chép khoá API nhằm sử dụng trong mã của ứng dụng. Bạn cũng có thể tìm thấy khoá API trong phần "Khoá API" của thông tin đăng nhập dự án.
    • Để ngăn chặn việc sử dụng trái phép, bạn nên hạn chế nơi và API mà khoá API có thể được dùng. Để biết thêm thông tin chi tiết, hãy xem phần Thêm các quy tắc hạn chế đối với API.

Viết một tập lệnh gọi API Chat

Sau đây là cách lấy thông tin chi tiết về một sự kiện trong không gian bằng tính năng xác thực ứng dụngChat REST API:

Python

Mã mẫu Python này sử dụng Chat REST API.

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

    from google.oauth2 import service_account
    from apiclient.discovery import build
    
    # Define your app's authorization scopes.
    # Set authorization scopes based on the
    # event type. For example, if you are getting a space event
    # about a new membership, use the `chat.app.memberships.readonly` scope.
    #
    # When modifying these scopes, delete the file token.json, if it exists.
    SCOPES = ["https://www.googleapis.com/auth/chat.app.memberships",
              "https://www.googleapis.com/auth/chat.app.messages.readonly",
              "https://www.googleapis.com/auth/chat.app.spaces"]
    
    def main():
        '''
        Authenticates with Chat API using app authentication,
        then lists space events from a specified space.
        '''
    
        # Specify service account details.
        creds = (
            service_account.Credentials.from_service_account_file('credentials.json')
            .with_scopes(SCOPES)
        )
    
        # Build a service endpoint for Chat API.
        chat = build('chat', 'v1', credentials=creds, discoveryServiceUrl='https://chat.googleapis.com/$discovery/rest?version=v1&labels=DEVELOPER_PREVIEW&key=API_KEY')
    
        # Use the service endpoint to call Chat API.
        result = chat.spaces().spaceEvents().get(
    
            # The space to get event details from.
            #
            # Replace SPACE_NAME with a space name.
            # Obtain the space name from the spaces resource of Chat API,
            # or from a space's URL.
            name='spaces/SPACE_NAME/spaceEvents/SPACE_EVENT_NAME',
    
        ).execute()
    
        # Print Chat API's response in your command line interface.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Trong mã, hãy thay thế những nội dung sau:

    • API_KEY: khoá API mà bạn đã tạo để xây dựng điểm cuối dịch vụ cho Chat API.
    • SPACE_NAME: tên của một không gian mà bạn có thể lấy từ phương thức spaces.list trong Chat API hoặc từ URL của một không gian.
    • SPACE_EVENT_NAME: mã nhận dạng từ name của sự kiện không gian. Bạn có thể lấy mã nhận dạng từ phương thức ListSpaceEvents(). Để tìm hiểu cách sử dụng phương thức này, hãy xem bài viết Liệt kê các sự kiện trong một không gian.
  4. Trong thư mục làm việc, hãy tạo và chạy mẫu:

    python3 chat_spaceevents_get_app.py

Chat API trả về một danh sách phân trang các sự kiện trong không gian về thành viên và tin nhắn mới.