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 が通知を公開できるトピックを作成する必要があります。トピックを作成するには 2 つの方法があります。

a. Google Cloud Platform Console で手動で設定します。
b.Pub/Sub API を使用する(create topicmethod を参照)。

トピックを作成したら、トピック名をメモします。

3. サブスクリプションを作成する

サブスクリプションは特定のトピックに公開された一連のメッセージをキャプチャします。定期購入を作成するには、次の 2 つの方法があります。

a. Google Cloud Platform Console で手動で設定します。
b.Pub/Sub API を使用する(create subscription method をご覧ください)。

4. Android Device Policy にトピックへの公開権限を付与します

トピックに公開するための権限を android-cloud-policy@system.gserviceaccount.com に付与する必要があります。公開の権限を付与するには、次の 2 つの方法があります。

a. Google Cloud Platform Console で手動で行う。

  • 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 に追加しました。
  • roleroles/pubsub.publisher に設定します。

5. Enterprise を更新して通知をサポートしてください

エンタープライズに関する通知を作成したトピックに接続するには、enterprises.patch を呼び出して、次のパラメータを指定します。

  • pubsubTopic: Pub/Sub トピックの名前(projects/{project}/topics/{topic} 形式)。
  • enabledNotificationTypes: 受信するすべての通知タイプを含めます。ENROLLMENTSTATUS_REPORTCOMMAND から選択できます。

6. Pub/Sub API を使用して通知を受け取る

サブスクリプションでは、メッセージ配信に push メカニズムと pull メカニズムのいずれかを使用できます。両方のメカニズムで通知を受け取る方法については、Pub/Sub サブスクライバー ガイドをご覧ください。

メッセージの形式

メッセージは PubsubMessage の形式です。メッセージの attributes フィールドには、キー notificationType と、メッセージをトリガーした通知タイプに設定された値(ENROLLMENT など)を持つ属性が含まれます。メッセージの data フィールドには、更新されたリソースの JSON 表現(UTF-8 文字列としてエンコード)が含まれます。通知とそれに対応するリソースタイプは次のとおりです。

  • COMMAND 通知は、リソースタイプ Operation を使用します。
  • USAGE_LOGS 通知は、リソースタイプ UsageLogEvent を使用します。
  • ENROLLMENT 通知と STATUS_REPORT 通知は、リソースタイプ Device を使用します。

Enterprise で pubsubTopic を設定すると、notificationTypetest に設定された最初のメッセージが公開されます。このメッセージは、Android Device Policy にトピックに対する公開権限があることを確認するために送信され、無視する必要があります。