Trang này giải thích cách kích hoạt lại gói thuê bao Google Workspace bị tạm ngưng bằng cách giải quyết hoặc khắc phục lỗi và gọi phương thức subscriptions.reactivate()
.
Gói thuê bao Google Workspace sẽ bị tạm ngưng bất cứ khi nào lỗi khiến gói thuê bao không nhận được sự kiện. Ví dụ: một gói thuê bao sẽ bị tạm ngưng khi không tìm thấy tài nguyên mục tiêu hoặc điểm cuối thông báo của gói thuê bao đó. Sau khi giải quyết mọi lỗi liên quan đến gói thuê bao, bạn có thể kích hoạt lại gói thuê bao để bắt đầu nhận lại sự kiện.
Bạn có thể tìm hiểu về gói thuê bao bị tạm ngưng theo những cách sau:
- Ứng dụng của bạn sẽ nhận được một sự kiện trong vòng đời về việc tạm ngưng. Nếu gói thuê bao của bạn bị tạm ngưng do lỗi xảy ra với điểm cuối, thì bạn có thể không nhận được sự kiện trong vòng đời.
- Bạn sử dụng phương thức
subscriptions.get()
hoặcsubscriptions.list()
để xem liệu trườngstate
của gói thuê bao có được đặt thànhSUSPENDED
hay không. - Bạn được thông báo về việc không phân phối được thông báo đến điểm cuối thông báo. Để tìm hiểu về cách theo dõi các lỗi phân phối đến chủ đề Google Cloud Pub/Sub, hãy xem phần Xử lý lỗi thông báo.
Các gói thuê bao được kích hoạt lại sẽ giữ nguyên ngày hết hạn ban đầu. Để gia hạn thời gian hết hạn của gói thuê bao, hãy xem bài viết Cập nhật hoặc gia hạn gói thuê bao.
Apps Script
- Gói thuê bao Google Workspace. Để tạo một 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 Google Cloud thay vì dự án mặc định do Apps Script tự động tạo.
- Đối với mọi phạm vi mà bạn đã thêm để định cấu hình màn hình đồ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ụ: - Bật
dịch vụ nâng cao
Google Workspace Events
.
"oauthScopes": [ "https://www.googleapis.com/auth/chat.messages.readonly" ]
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 gói này, hãy chạy lệnh sau trong giao diện dòng lệnh:
pip3 install --upgrade google-api-python-client google-auth-oauthlib
- Một gói thuê bao của Google Workspace. Để tạo một 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 của gói thuê bao.
Xác định và khắc phục lỗi
Để xác định lỗi cho một gói thuê bao, hãy xem lại trường suspensionReason
của gói thuê bao đó. Bạn có thể tìm thấy trường này khi nhận được sự kiện trong vòng đời về việc tạm ngưng hoặc bằng cách sử dụng phương thức subscriptions.get()
để xem lại tất cả các trường của gói thuê bao.
Bảng sau đây cho thấy các lỗi có thể xảy ra đối với gói thuê bao và cách khắc phục lỗi (nếu có thể). Nếu không thể khắc phục lỗi, bạn có thể xoá gói thuê bao hoặc đợi gói thuê bao hết hạn. API Sự kiện của Google Workspace sẽ tự động xoá các gói thuê bao đã hết hạn.
Lỗi | Nội dung mô tả | Cách giải quyết |
---|---|---|
|
Người dùng uỷ quyền đã thu hồi việc cấp một hoặc nhiều phạm vi OAuth cần thiết cho gói thuê bao. | Lấy một mã truy cập khác. Để biết thông tin chi tiết, hãy xem bài viết Nhận mã thông báo truy cập từ máy chủ uỷ quyền của Google. |
|
Tài nguyên mục tiêu của gói thuê bao sẽ bị xoá. | Nếu tài nguyên được khôi phục, hãy gọi phương thức reactivate() . Nếu không, bạn không cần làm gì cả vì bạn không thể kích hoạt lại gói thuê bao nếu không có tài nguyên mục tiêu ban đầu. |
|
Người dùng uỷ quyền không còn quyền truy cập vào tài nguyên của gói thuê bao. | Bạn không cần làm gì cả. Bạn không thể kích hoạt lại gói thuê bao vì người dùng đã uỷ quyền gói thuê bao đó không thể truy cập vào tài nguyên mục tiêu. |
|
Ứng dụng Google Workspace không có quyền truy cập để gửi sự kiện đến điểm cuối thông báo của bạn. | Cấp quyền truy cập vào tài khoản dịch vụ cho ứng dụng Google Workspace phân phối sự kiện. Đối với các sự kiện trong Google Chat, tài khoản dịch vụ là chat-api-push@system.gserviceaccount.com . Đối với các sự kiện trên Google Meet, tài khoản dịch vụ là meet-api-event-push@system.gserviceaccount.com .Đối với các chủ đề Pub/Sub, hãy cấp vai trò Nhà xuất bản Pub/Sub ( roles/pubsub.publisher)
cho tài khoản dịch vụ. |
|
Điểm cuối thông báo không tồn tại hoặc không tìm thấy. | Kiểm tra để đảm bảo điểm cuối vẫn đang hoạt động. Để khắc phục sự cố về chủ đề Pub/Sub, hãy xem Tài liệu khắc phục sự cố. |
|
Điểm cuối thông báo không nhận được sự kiện do không đủ hạn mức hoặc đã đạt đến giới hạn tốc độ. | Yêu cầu tăng hạn mức. |
Kích hoạt lại gói thuê bao
Sau khi khắc phục lỗi khiến gói thuê bao bị tạm ngưng, bạn có thể sử dụng phương thức reactivate()
để cho phép gói thuê bao nhận lại sự kiện. Phương thức này kiểm tra để đảm bảo tất cả lỗi đều được giải quyết và thay đổi trường state
của gói thuê bao từ SUSPENDED
thành ACTIVE
.
Cách kích hoạt lại gói thuê bao Google Workspace:
Apps Script
Trong dự án Apps Script, hãy tạo một tệp tập lệnh mới tên là
reactivateSubscription
và thêm mã sau:function reactivateSubscription() { // The name of the subscription to reactivate. const name = 'subscriptions/SUBSCRIPTION_ID'; // Call the Workspace Events API using the advanced service. const response = WorkspaceEvents.Subscriptions.reactivate({}, name); console.log(response); }
Thay thế nội dung sau:
Để kích hoạt lại gói thuê bao Google Workspace, hãy chạy hàm
reactivateSubscription
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
reactivate_subscription.py
rồi thêm đoạn mã sau:"""Reactivate subscription.""" from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build # Specify required scopes. SCOPES = [SCOPES] # 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, ) NAME = 'subscriptions/SUBSCRIPTION_ID' response = service.subscriptions().reactivate(name=NAME).execute() print(response)
Thay thế nội dung sau:
SCOPES
: Một hoặc nhiều phạm vi OAuth hỗ trợ từng loại sự kiện cho gói thuê bao. Được định dạng dưới dạng một mảng chuỗi. Để liệt kê nhiều phạm vi, hãy phân tách bằng dấu phẩy. Ví dụ:'https://www.googleapis.com/auth/chat.spaces.readonly', 'https://www.googleapis.com/auth/chat.memberships.readonly'
.SUBSCRIPTION_ID
: Mã nhận dạng của gói thuê bao. Để lấy mã nhận dạng, bạn có thể sử dụng bất kỳ phương thức nào sau đây:
Trong thư mục đang hoạt động, hãy đảm bảo bạn đã lưu trữ thông tin xác thực mã ứng dụng khách OAuth và đặt tên tệp là
client_secrets.json
. Mẫu mã sử dụng tệp JSON này để xác thực bằng 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 phần Tạo thông tin xác thực mã ứng dụng khách OAuth.Để kích hoạt lại gói thuê bao của Google Workspace, hãy chạy dòng sau trong cửa sổ dòng lệnh:
python3 reactivate_subscription.py
Subscription
.
Nếu yêu cầu không thành công, hãy xem phần sau đây để khắc phục các lỗi khác.
Khắc phục nhiều lỗi
Nếu bạn đã giải quyết lỗi tạm ngưng gói thuê bao và phương thức reactivate()
không thành công, thì có thể đã xảy ra lỗi khác sau khi gói thuê bao của bạn bị tạm ngưng.
Để xác định các lỗi khác, hãy xem lại kết quả của yêu cầu không thành công. Đầu ra chứa mọi lỗi vẫn còn tồn tại.
Khi gói thuê bao của bạn gặp nhiều lỗi, giá trị của trường suspensionReason
luôn sử dụng lỗi ban đầu đã tạm ngưng gói thuê bao.