Trang này giải thích cách liệt kê các gói thuê bao của Google Workspace bằng phương thức subscriptions.list()
.
Khi bạn gọi phương thức này qua phương thức xác thực người dùng, phương thức này sẽ trả về danh sách các gói thuê bao được người dùng cho phép. Khi bạn sử dụng tính năng xác thực ứng dụng, phương thức này có thể trả về danh sách chứa bất kỳ gói thuê bao nào cho ứng dụng.
Điều kiện tiên quyết
Apps Script
- Gói thuê bao của Google Workspace. Để tạo gói thuê bao, hãy xem phần Tạo gói thuê bao.
Yêu cầu xác thực người dùng bằng một hoặc nhiều phạm vi hỗ trợ tất cả các loại sự kiện cho gói thuê bao.
- Một dự án Apps Script:
- Sử dụng dự án của bạn trên Google Cloud thay vì dự án mặc định do Apps Script tạo tự động.
- Đối với mọi phạm vi mà bạn đã thêm để định cấu hình màn hình xin phép bằng OAuth, bạn cũng phải thêm các phạm vi đó vào tệp
appsscript.json
trong dự án Apps Script. Ví dụ:
"oauthScopes": [ "https://www.googleapis.com/auth/chat.messages.readonly" ]
- Bật
dịch vụ nâng cao của
Google Workspace Events
.
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
- Gói thuê bao của Google Workspace. Để tạo gói thuê bao, hãy xem phần Tạo gói thuê bao.
Yêu cầu xác thực:
- Để xác thực người dùng, bạn cần có một phạm vi hỗ trợ ít nhất một trong các loại sự kiện cho gói thuê bao. Để xác định phạm vi, hãy xem bài viết Phạm vi theo loại sự kiện.
- Để xác thực ứng dụng, bạn phải có phạm vi
chat.bot
(chỉ dành cho các ứng dụng Google Chat).
Liệt kê các gói thuê bao được người dùng ủy quyền
Để liệt kê các gói thuê bao, bạn phải lọc theo ít nhất một loại sự kiện. Bạn cũng có thể lọc truy vấn của mình theo một hoặc nhiều tài nguyên mục tiêu. Để tìm hiểu về các bộ lọc truy vấn được hỗ trợ, hãy xem tài liệu về phương thức list()
.
Mã mẫu sau đây trả về một mảng các đối tượng Subscription
được lọc theo loại sự kiện và tài nguyên mục tiêu. Khi được xác thực là người dùng, phương thức này chỉ trả về danh sách các gói thuê bao mà người dùng đã cho phép ứng dụng tạo.
Cách liệt kê gói thuê bao cho một loại sự kiện cụ thể và tài nguyên mục tiêu:
Apps Script
Trong dự án Apps Script, hãy tạo một tệp tập lệnh mới có tên là
listSubscriptions
rồi thêm mã sau:function listSubscriptions() { // Filter for event type (required). const eventType = 'EVENT_TYPE'; // Filter for target resource (optional). const targetResource = 'TARGET_RESOURCE'; const filter = `event_types:"${eventType}" AND target_resource="${targetResource}"` // Call the Workspace Events API using the advanced service. const response = WorkspaceEvents.Subscriptions.list({ filter }); console.log(response); }
Thay thế các đoạn mã sau:
EVENT_TYPE
: Một loại sự kiện được định dạng theo thông số kỹ thuật của CloudEvents. Ví dụ: để lọc các gói thuê bao nhận sự kiện về thành viên mới của một phòng Google Chat,google.workspace.chat.message.v1.created
.TARGET_RESOURCE
: Một tài nguyên mục tiêu, có định dạng là tên tài nguyên đầy đủ. Ví dụ: để lọc theo gói thuê bao của một không gian Google Chat, hãy sử dụng//chat.googleapis.com/spaces/SPACE_ID
, trong đóspaces/SPACE_ID
đại diện cho trườngname
của tài nguyênSpace
.
Để liệt kê các gói thuê bao, hãy chạy hàm
listSubscriptions
trong dự án Apps Script.
Python
Trong thư mục đang làm việc, hãy tạo một tệp có tên
list_subscriptions.py
rồi thêm mã sau:"""List subscriptions.""" from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build # Specify required scopes. SCOPES = ['SCOPE'] # Authenticate with Google Workspace and get user authentication. flow = InstalledAppFlow.from_client_secrets_file('client_secrets.json', SCOPES) CREDENTIALS = flow.run_local_server() # Call the Workspace Events API using the service endpoint. service = build( 'workspaceevents', 'v1', credentials=CREDENTIALS, ) # Filter for event type (required). EVENT_TYPE = 'EVENT_TYPE' # Filter for target resource (optional). TARGET_RESOURCE = 'TARGET_RESOURCE' FILTER = f'event_types:"{EVENT_TYPE}" AND target_resource="{TARGET_RESOURCE}"' response = service.subscriptions().list(filter=FILTER).execute() print(response)
Thay thế các đoạn mã sau:
SCOPE
: Phạm vi OAuth hỗ trợ ít nhất một loại sự kiện trong gói thuê bao. Ví dụ: nếu gói thuê bao của bạn nhận được các sự kiện trong một phòng Chat đã cập nhật,https://www.googleapis.com/auth/chat.spaces.readonly
.EVENT_TYPE
: Một loại sự kiện được định dạng theo thông số kỹ thuật của CloudEvents. Ví dụ: để lọc các gói thuê bao nhận sự kiện về thành viên mới của một phòng Google Chat,google.workspace.chat.message.v1.created
.TARGET_RESOURCE
: Một tài nguyên mục tiêu, có định dạng là tên tài nguyên đầy đủ. Ví dụ: để lọc theo gói thuê bao của một không gian Google Chat, hãy sử dụng//chat.googleapis.com/spaces/SPACE_ID
, trong đóspaces/SPACE_ID
đại diện cho trườngname
của tài nguyênSpace
.
Trong thư mục đang làm việc, hãy đảm bảo rằng bạn đã lưu trữ thông tin đăng nhập của mã ứng dụng khách OAuth và đặt tên cho tệp là
client_secrets.json
. Mã mẫu sẽ sử dụng tệp JSON này để xác thực với Google Workspace và lấy thông tin đăng nhập của người dùng. Để biết hướng dẫn, hãy xem bài viết Tạo thông tin đăng nhập mã ứng dụng khách OAuth.Để liệt kê các gói thuê bao, hãy chạy lệnh sau trong dòng lệnh của bạn:
python3 list_subscriptions.py
API Sự kiện của Google Workspace sẽ trả về một mảng được phân trang của các đối tượng Subscription
khớp với bộ lọc cho truy vấn của bạn.