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 Google Chat API để 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
biểu thị 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 thể hiện cảm xúc 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 eventType
và payload
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 trong vòng 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, thì máy chủ sẽ trả về các tài nguyên Membership
chứa thông tin mới nhất về thành viên. Nếu các thành viên mới bị xoá trong khoảng thời gian được yêu cầu, thì tải trọng sự kiện sẽ chứa một tài nguyên Membership
trống.
Để liệt kê các sự kiện trong một không gian, người dùng đã xác thực hoặc ứng dụng Chat phải là thành viên của không gian đó.
Đ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:
- Tạo một dự án trên Google Cloud.
- Định cấu hình màn hình đồng ý OAuth.
- Bật và định cấu hình Google Chat API 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 Cloud 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 Google Chat API:
- Để xác thực với tư cách là người dùng Chat, hãy tạo thông tin xác thực mã ứng dụng OAuth và lưu thông tin xác thực dưới dạng tệp JSON có tên
credentials.json
vào thư mục cục bộ của bạn. - Để xác thực dưới dạng ứ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 xác thực mã ứng dụng OAuth và lưu thông tin xác thực dưới dạng tệp JSON có tên
- Chọn 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:
- Tạo một dự án trên Google Cloud.
- Định cấu hình màn hình đồng ý OAuth.
- Bật và định cấu hình Google Chat API 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 Google Chat API:
- Để xác thực với tư cách là người dùng Chat, hãy tạo thông tin xác thực mã ứng dụng OAuth và lưu thông tin xác thực dưới dạng tệp JSON có tên
credentials.json
vào thư mục cục bộ của bạn. - Để xác thực dưới dạng ứ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 xác thực mã ứng dụng OAuth và lưu thông tin xác thực dưới dạng tệp JSON có tên
- Chọn 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.
Liệt kê các sự kiện trong không gian (xác thực người dùng)
Để liệt kê các sự kiện trong không gian trên Chat, 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. Để chọn một phạm vi, hãy xem phần Tổng quan về quy trình xác thực và uỷ quyền.
Gọi phương thức
ListSpaceEvents()
, truyềnfilter
của các loại sự kiện cần liệt kê. Bạn phải chỉ định ít nhất một loại sự kiện và bạn 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ườngeventType
của tài liệu tham khảo về tài nguyênSpaceEvent
.
Ví dụ sau đây liệt kê các sự kiện về thành viên mới và tin nhắn trong một không gian:
Node.js
Để 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 phân trang các sự kiện trong không gian về thành viên và tin nhắn mới.
Liệt kê các 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.
Để liệt kê các sự kiện trong không gian từ một không gian có xác thực ứng dụng và 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
list
trên tài nguyênspaceEvents
. - Truyền
name
của không gian để liệt kê các tin nhắn. - Truyền một
filter
để truy vấn các loại sự kiện cụ thể.
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:
- 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.
- Nhấp vào Tạo thông tin xác thực > Khoá API.
- 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 liệt kê các sự kiện trong không gian bằng xác thực ứng dụng và Chat REST API:
Python
- Trong thư mục làm việc, hãy tạo một tệp có tên là
chat_spaceevents_list_app.py
. Thêm mã sau vào
chat_spaceevents_list_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().list( # The space to list events 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. parent='spaces/SPACE_NAME', # A required filter. Filters events by event type. # # Update this filter to match your requirements. filter='eventTypes:"google.workspace.chat.message.v1.created"' ).execute() # Print Chat API's response in your command line interface. print(result) if __name__ == '__main__': main()
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ứcspaces.list
trong Chat API hoặc từ URL của 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_list_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.