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 を使用する(トピックメソッドの作成をご覧ください)。

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

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

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

a. Google Cloud Platform Console で手動で行います。
b.Pub/Sub API の使用(定期購入メソッドの作成をご覧ください)。

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. エンタープライズを更新して通知をサポートする

企業に関する通知を作成したトピックに関連付けるには、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 フィールドには、更新されたリソースの UTF-8 文字列としてエンコードされた JSON 表現が含まれます。通知とそれに対応するリソースタイプは次のとおりです。

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

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