Hướng dẫn này giải thích cách sử dụng
get()
phương thức trên tài nguyên SpaceEvent của API Google Chat để lấy thông tin chi tiết về
một sự kiện từ một phòng Chat trên Google Chat.
Tài nguyên
SpaceEvent đại diện cho một thay đổi đối với một 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,
phản ứng và tư cách 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 tối đa 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 đó đượ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 tính nă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
- Tài khoản Google Workspace Business hoặc Enterprise có quyền truy cập vào Google Chat.
- Thiết lập môi trường của bạn:
- Tạo một dự án trên Google Cloud.
- Định cấu hình màn hình xin phép bằng OAuth.
- Bật và định cấu hình API Google Chat bằng tên, biểu tượng và nội dung mô tả cho ứng dụng Chat của bạn.
- Cài đặt Thư viện ứng dụng đám mây Node.js.
- Tạo thông tin đăng nhập truy cập dựa trên cách bạn muốn xác thực trong yêu cầu API Google Chat:
- Để xác thực với tư cách là người dùng Chat,
hãy tạo thông tin đăng nhập mã ứng dụng OAuth và lưu thông tin đăng nhập đó dưới dạng tệp JSON có tên là
credentials.jsonvào thư mục cục bộ. - Để xác thực với tư cách là ứng dụng Chat,
hãy tạo thông tin đăng nhập tài khoản dịch vụ và lưu thông tin đăng nhập đó dưới dạng tệp JSON có tên là
credentials.json.
- Để xác thực với tư cách là người dùng Chat,
hãy tạo thông tin đăng nhập mã ứng dụng OAuth và lưu thông tin đăng nhập đó dưới dạng tệp JSON có tên là
- Chọn một phạm vi uỷ quyền dựa trên việc bạn muốn xác thực với tư cách là người dùng hay ứng dụng Chat.
Python
- Tài khoản Google Workspace Business hoặc Enterprise có quyền truy cập vào Google Chat.
- Thiết lập môi trường của bạn:
- Tạo một dự án trên Google Cloud.
- Định cấu hình màn hình xin phép bằng OAuth.
- Bật và định cấu hình API Google Chat bằng tên, biểu tượng và nội dung mô tả cho ứng dụng Chat của bạn.
- Cài đặt Thư viện ứng dụng đám mây Python.
- Tạo thông tin đăng nhập truy cập dựa trên cách bạn muốn xác thực trong yêu cầu API Google Chat:
- Để xác thực với tư cách là người dùng Chat,
hãy tạo thông tin đăng nhập mã ứng dụng OAuth và lưu thông tin đăng nhập đó dưới dạng tệp JSON có tên là
credentials.jsonvào thư mục cục bộ. - Để xác thực với tư cách là ứng dụng Chat,
hãy tạo thông tin đăng nhập tài khoản dịch vụ và lưu thông tin đăng nhập đó dưới dạng tệp JSON có tên là
credentials.json.
- Để xác thực với tư cách là người dùng Chat,
hãy tạo thông tin đăng nhập mã ứng dụng OAuth và lưu thông tin đăng nhập đó dưới dạng tệp JSON có tên là
- Chọn một phạm vi uỷ quyền dựa trên việc bạn muốn xác thực với tư cách là người dùng hay ứng dụng Chat.
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)
Để lấy 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:
- 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. Để có kết quả tốt 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ềnnamecủa sự kiện trong không gian để lấy.
Ví dụ sau đây lấy một sự kiện trong không gian:
Node.js
Mã mẫu Node.js này sử dụng API Chat RPC.
Để chạy mẫu này, hãy thay thế các thông tin 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 lấy một sự kiện trong không gian về một tư cách thành viên mới, hãy sử dụng phạm vichat.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ừListSpaceEvents()phương thức. Để 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 từ một không gian.SPACE_NAME: mã nhận dạng từnamecủa không gian. Bạn có thể lấy mã nhận dạng bằng cách gọiListSpaces()phương thức hoặc từ URL của không gian.SPACE_EVENT_NAME: mã nhận dạng từnamecủa sự kiện trong không gian. Bạn có thể lấy mã nhận dạng từ phương thứcListSpaceEvents(). Để 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 từ một không gian.
API Chat trả về một thực thể của
SpaceEvent
với 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)
Tính năng xác thực ứng dụng yêu cầu quản trị viên phê duyệt một lần quản trị viên phê duyệt.
Để lấy thông tin chi tiết về một sự kiện trong không gian từ một không gian có tính năng xác thực ứng dụng bằng API REST Chat, hãy truyền các thông tin sau trong yêu cầu:
- 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ó kết quả tốt 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. Để 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ề tính năng xác thực và uỷ quyền.
https://www.googleapis.com/auth/chat.app.membershipshttps://www.googleapis.com/auth/chat.app.memberships.readonlyhttps://www.googleapis.com/auth/chat.app.messages.readonlyhttps://www.googleapis.com/auth/chat.app.spaceshttps://www.googleapis.com/auth/chat.app.spaces.readonly
- Gọi phương thức
gettrên tài nguyênspaceEvents. - Truyền
namecủa không gian để lấy thông tin chi tiết về sự kiện.
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ụng và API REST Chat:
Python
Mẫu mã Python này sử dụng API REST Chat.
- 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. Đưa 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` 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.memberships.readonly", "https://www.googleapis.com/auth/chat.app.messages.readonly", "https://www.googleapis.com/auth/chat.app.spaces", "https://www.googleapis.com/auth/chat.app.spaces.readonly"] 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) # 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()Trong mã, hãy thay thế các thông tin sau:
SPACE_NAME: tên không gian mà bạn có thể lấy từ phương thứcspaces.listtrong API Chat hoặc từ URL của không gian.SPACE_EVENT_NAME: mã nhận dạng từnamecủa sự kiện trong không gian. Bạn có thể lấy mã nhận dạng từ phương thứcListSpaceEvents(). Để 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 từ một không gian.
Trong thư mục làm việc, hãy tạo và chạy mẫu:
python3 chat_spaceevents_get_app.py
API Chat trả về một danh sách gồm danh sách phân trang các sự kiện trong không gian về tư cách thành viên và tin nhắn mới.