プッシュ通知

概要

Reseller API は Pub/Sub API を使用して push を配信 各種の Google Workspace エディションに 購読イベント。たとえば、push オプションを使用して、 顧客に通知が届くように設定して定期購入のステータス あります。

前提条件

  • Pub/Sub API を有効にします。 Google Cloud プロジェクトを作成します
  • プロジェクトのサービス アカウントに Pub/Sub IAM ロールを付与し、 できます。付与する roles/pubsub.editor ロールは適切な妥協点(簡単で、広範すぎない)です。 より具体的な Pub/Sub 権限

トピックの作成

トピックを作成するには、Reseller API に登録する必要があります 使用して resellernotify.register メソッドresellernotify.register メソッドは、サービス アカウントのメールアドレスを受け取ります。 パラメータを指定します。この方法で承認されたサービス アカウントのみが、 作成します。

POST https://reseller.googleapis.com/apps/reseller/v1/resellernotify/register
{
  "serviceAccountEmailAddress": "reseller@reseller-project.iam.gserviceaccount.com"
}

成功すると、HTTP 200 ステータス コードが返されます。 Pub/Sub トピック名を含む JSON レスポンスが返されます。

レスポンスの例を次に示します。

{
  "topicName": "projects/partner-watch/topics/C0abcdefg"
}

追加のサービス アカウントにトピックの使用を許可するには、次のコマンドを呼び出します。 もう一度resellernotify.registerします。

サービス アカウントのアクセス権を取り消す

Reseller API では、次の方法でサービス アカウントの登録を解除することもできます。 resellernotify.unregister エンドポイントを使用します。

POST https://reseller.googleapis.com/apps/reseller/v1/resellernotify/unregister
{
  "serviceAccountEmailAddress": "reseller@reseller-project.iam.gserviceaccount.com"
}

トピックにサブスクライブする

Pub/Sub トピックを作成したら、アプリケーションをどのように 変更イベントを使用します次のいずれかを選択してください。

  • push サブスクリプション: HTTP POST コールバックを提供します。Pub/Sub の用途 このコールバックを使用して、アプリケーションに新しいイベントを通知します。
  • pull サブスクリプション: アプリケーションは定期的に HTTP 呼び出しを行い、 キュー内のすべての変更を取得できます。
で確認できます。

トピックにサブスクライブするリクエストの例を次に示します。

PUT https://pubsub.googleapis.com/v1/projects/PROJECT/subscriptions/SUBSCRIPTION_NAME
{
  "topic": "TOPIC_NAME"
  // Only needed for push configurations
  "pushConfig": {
    "pushEndpoint": "PUSH_NOTIFICATION_ENDPOINT"
  },
}

次のように置き換えます。

  • PROJECT: Google Cloud プロジェクト。
  • SUBSCRIPTION_NAME: アプリケーションの識別名 。
  • TOPIC_NAME: 前に作成した Pub/Sub トピック 作成されます。
  • PUSH_NOTIFICATION_ENDPOINT: プッシュ通知 使用します。

成功すると、HTTP 200 ステータス コードが返されます。以下は、 レスポンスの例:

{
  "name": "projects/PROJECT/subscriptions/SUBSCRIPTION_NAME",
  "topic": "TOPIC_NAME",
  "pushConfig": {
    "pushEndpoint": "PUSH_NOTIFICATION_ENDPOINT"
    },
  "ackDeadlineSeconds": 10
}

通知形式

Pub/Sub 通知の例を次に示します。メッセージ データは、 base64 エンコードされた JSON 文字列として送信されます。

{
  "message": {
    "attributes": {},
    "data": "eyJza3VfaWQiOiAiR29vZ2xlLUFwcHMtVW5saW1pdGVkIiwgImV2ZW50X3R5cGUiOiAiU1VCU0NSSVBUSU9OX0NBTkNFTExFRCIsICJjdXN0b21lcl9kb21haW5fbmFtZSI6ICJkb21haW4uY29tIiwgInN1YnNjcmlwdGlvbl9pZCI6ICIxMjM0NTY3IiwgImN1c3RvbWVyX2lkIjogIkMwYWJjZGVmIiwgIm1lc3NhZ2VfaWQiOiAiODY3NTMwOSIsICJwdWJsaXNoX3RpbWUiOiB7InNlY29uZHMiOiAxNDU3NzMxODQ2LCAibmFub3MiOiAzNDkwMDAwMDB9LCAicmVzZWxsZXJfY3VzdG9tZXJfaWQiOiAiQzByZXNlbGxlciJ9",
    "message_id": 1234567891012131
  },
  "subscription": "projects/PROJECT/subscriptions/SUBSCRIPTION_NAME"
}

デコード後の message.data オブジェクトの例を次に示します。

{
  "customer_id": "C0abcdef",
  "customer_domain_name": "domain.com",
  "event_type": "SUBSCRIPTION_CANCELLED",
  "sku_id": "Google-Apps-Unlimited",
  "subscription_id": "1234567",
  // Optional fields depended on event_type
  "subscription_suspension_reasons": [],
  "subscription_cancellation_reason": "REASON"
}

イベントタイプ

考えられるすべてのイベントタイプは次のとおりです。

  • NEW_SUBSCRIPTION_CREATED: 新しいサブスクリプションが作成されました。
  • SUBSCRIPTION_TRIAL_ENDED: サブスクリプションの試用期間が終了しました。
  • PRICE_PLAN_SWITCHED: フレキシブル プランから年間プランに変換されたお客様 できますユーザーがコンバージョンを達成した場合、このイベントはトリガーされません。 更新の一環としてフレキシブル プランに変更できるようになりました。
  • COMMITMENT_CHANGED: 年間コミットメントが増減されました。
  • SUBSCRIPTION_RENEWED: 年間サブスクリプションが更新されました。
  • SUBSCRIPTION_SUSPENDED: サブスクリプションは停止されています。詳しくは、 subscription_suspension_reasons フィールド。
  • SUBSCRIPTION_SUSPENSION_REVOKED: 以前に停止されたサブスクリプションの停止が取り消されました。
  • SUBSCRIPTION_CANCELLED: サブスクリプションはキャンセルされました。詳しくは、 subscription_cancellation_reason フィールド。クラウド コンピューティングの できます。
  • SUBSCRIPTION_CONVERTED: サブスクリプションが変換されました。たとえば、 このイベントは次のとおりです。

    • 直接サブスクリプションを販売パートナー サブスクリプションに変換します。
    • 有料サブスクリプションを猶予期間の特典に変更します。
    • オンライン サブスクリプションをオフライン サブスクリプションに変換します。
  • SUBSCRIPTION_UPGRADE: サブスクリプション SKU がアップグレードされました。たとえば、 サブスクリプションが Google Workspace Business Starter から Business にアップグレードされました Standard。

  • SUBSCRIPTION_DOWNGRADE: サブスクリプション SKU がダウングレードされました。たとえば、 サブスクリプションが Google Workspace Business Standard から Business Starter。

  • LICENSE_ASSIGNMENT_CHANGED: ライセンスが割り当てられた、またはプロバイダから取り消された できます。このイベントを使用すると、事後対応的にシート数の変更を追跡できます。 フレキシブルなサブスクリプション。

定期購入の解約理由

定期購入の解約理由は、event_typeSUBSCRIPTION_CANCELLED。キャンセルの理由として次のことが考えられます。

  • TRANSFERRED_OUT: 顧客は直接請求または 別の販売パートナー。
  • PURCHASE_OF_SUBSUMING_SKU: お客様は、 オーバーライドしますたとえば、Google Workspace Business と Google Workspace Business Plus にアップグレードした場合、 Vault サブスクリプションは、 Google Workspace Business Plus
  • RESELLER_INITIATED: 販売パートナーがサブスクリプションをキャンセルしました。
  • OTHER: 記載以外のなんらかの理由でサブスクリプションが解約されました。

定期購入の停止理由

サブスクリプションの停止理由は、event_typeSUBSCRIPTION_SUSPENDED。アカウントが停止される理由としては、次のようなものが考えられます。

  • PENDING_TOS_ACCEPTANCE: お客様はログインしておらず、 Google Workspace 再販契約の利用規約
  • RENEWAL_WITH_TYPE_CANCEL: お客様の契約が終了し、 契約期間の満了時にサービスが解約された場合
  • RESELLER_INITIATED: 販売パートナーが手動でサブスクリプションを停止しました。
  • TRIAL_ENDED: 試用期間が終了し、お客様が選択しなかった場合 試用版ではないプランに加入します。
  • OTHER: 顧客は Google 内部の理由により停止されています。 できます。

Pub/Sub の制限事項

プッシュ通知の順序は保証されません。メッセージが配信されている可能性があります 極端な状況下で何度か行うことになります。Google Cloud コンソールの 変更されたすべてのサブスクリプションで reseller.subscriptions.get を実行し、 説明します。