設定 Pub/Sub 通知

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.commembers
  • 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 資源類型。
  • ENROLLMENTSTATUS_REPORT 通知使用資源類型「裝置」

在企業上設定 pubsubTopic 時,系統會發布初始訊息,並將 notificationType 設為 test。之所以傳送這則訊息,是要確認 Android Device Policy 具備主題的發布權限,並請忽略這則訊息。