Pub/Sub 通知可讓您接收新註冊裝置、裝置報告和最近發出的指令的相關快訊。
如要設定 Pub/Sub 通知,您必須啟用 Pub/Sub API 並建立「主題」。如要接收發布至某個主題的訊息,請建立該主題的訂閱項目。訂閱項目會將主題連結至訂閱者應用程式,以便接收及處理發布至主題的訊息。建立訂閱項目後,您需要授予 Android Device Policy 權限,以便發布至您的主題。
1. 為專案啟用 Pub/Sub API
如需啟用 Pub/Sub API 的操作說明,請參閱控制台快速入門指南。確認您已選取已啟用 Android Management API 的同一個專案。
2. 建立主題
啟用 API 後,您需要建立 Android Device Policy 可發布通知的主題。建立主題的方式有兩種:
a. 在 Google Cloud Platform 控制台中手動執行。
b.使用 Pub/Sub API (請參閱「建立主題方法」)。
建立主題後,請記下主題名稱。
3. 建立訂閱項目
訂閱項目會擷取發布至指定主題的訊息串。建立訂閱項目的方式有兩種:
a. 在 Google Cloud Platform 控制台中手動執行。
b.使用 Pub/Sub API (請參閱建立訂閱方法)。
4. 授予 Android Device Policy 以發布至您主題的權限
您必須授予 android-cloud-policy@system.gserviceaccount.com 權限,才能發布至主題。有兩種方式可以授予發布權利:
a. 在 Google Cloud Platform 控制台中手動執行。
- 將 android-cloud-policy@system.gserviceaccount.com 新增為主題的成員。
- 依序點選「請選擇角色」 >「Pub/Sub」 >「Pub/Sub 發布者」。
b. 使用 Pub/Sub API (請參閱透過 Google Cloud Pub/Sub IAM API 控管存取權)
- 新增
serviceAccount:android-cloud-policy@system.gserviceaccount.com
至members
。 - 將
role
設為roles/pubsub.publisher
。
5. 更新企業帳戶以支援通知
如要將企業的通知連線至您建立的主題,請呼叫 enterprises.patch
並指定下列參數:
pubsubTopic
:Pub/Sub 主題的名稱,格式為projects/{project}/topics/{topic}
。enabledNotificationTypes
:加入您要接收的所有通知類型。可選擇「ENROLLMENT
」、「STATUS_REPORT
」和「COMMAND
」。
6. 使用 Pub/Sub API 接收通知
訂閱項目可以採用推送或提取機制來傳送訊息。如要瞭解如何透過這兩種機制接收通知,請參閱 Pub/Sub 訂閱者指南。
訊息格式
訊息會採用 PubsubMessage 的形式。訊息的 attributes
欄位包含鍵 notificationType
的屬性,且值設為觸發訊息的通知類型 (例如 ENROLLMENT
)。訊息的 data
欄位含有以 UTF-8 字串編碼更新的資源,內含 JSON 表示法。通知及對應的資源類型如下:
COMMAND
通知使用資源類型 Operation。USAGE_LOGS
通知會使用 UsageLogEvent 資源類型。ENROLLMENT
和STATUS_REPORT
通知使用資源類型「裝置」。
在企業上設定 pubsubTopic
時,系統會發布初始訊息,並將 notificationType
設為 test
。之所以傳送這則訊息,是要確認 Android Device Policy 具備主題的發布權限,並請忽略這則訊息。