Notifications サブ API の概要

Notifications サブ API を使用すると、Merchant Center アカウントでデータが変更されたときにプッシュ通知を受け取ることができます。API を定期的にポーリングして変更を検出する代わりに、構成した HTTPS エンドポイントに直接配信されるリアルタイム イベント フィードをサブスクライブできます。

Notifications サブ API は、次の通知をサポートしています。

  • 商品のステータスの変更: リンクされたアカウントまたはサブアカウントで商品の承認ステータスが変更されたとき(商品が不承認または承認されたときなど)に、リアルタイムでアラートを受け取ります。
  • アカウント サービスの変更: AccountService リソースが作成、更新、削除されたとき(アカウント サービスの関係が確立、変更、削除されたときなど)に、リアルタイム アラートを受け取ります。

前提条件とコールバック URI の設定

プッシュ通知を受信するには、callBackUri を指定する必要があります。コールバック URI は、次の要件を満たす必要があります。

  • 認定された認証局が署名した有効な SSL 証明書を持つ、一般公開されている HTTPS アドレスである必要があります。
  • Content-Type ヘッダーが application/json に設定された HTTP POST リクエストを受け入れる必要があります。
  • 通知を受信したことを確認するために、次のいずれかの HTTP ステータス コードを返す必要があります。

    • 102
    • 200
    • 201
    • 202
    • 204

複数のサブスクリプションに同じコールバック URI を使用できます。単一のエンドポイントの負荷を最小限に抑えるには、アドバンス アカウントとイベントタイプごとに一意のコールバック URI を使用します。

サブスクリプションを管理

Notifications サブ API には、通知構成の作成、一覧表示、取得、更新、削除を行うメソッドが用意されています。

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

サブスクリプションの作成は、受信するイベントタイプに固有です。イベントタイプごとに異なる構成フィールドが必要であり、異なるペイロード構造が提供されます。

サブスクリプションを作成する方法と、各イベントタイプのサンプル リクエストを表示する方法については、それぞれのガイドをご覧ください。

サブスクリプションの一覧表示

アカウントのすべての通知サブスクリプションを一覧表示するには、notificationsubscriptions コレクションに GET リクエストを送信します。

GET https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions

サブスクリプションを取得する

特定のサブスクリプションの詳細を取得するには、サブスクリプションのリソース名を使用します。

GET https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/{SUBSCRIPTION_ID}

サブスクリプションの更新

既存のサブスクリプションのコールバック URI を更新するには、更新するフィールドを指定する update_mask を含む PATCH リクエストを送信します。

PATCH https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/{SUBSCRIPTION_ID}?update_mask=callBackUri
{
  "callBackUri": "https://example.com/updated-callback"
}

サブスクリプションの削除

通知の受信を停止するには、サブスクリプションを削除します。

DELETE https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/{SUBSCRIPTION_ID}

通知をデコードする

イベントが発生すると、Google は登録済みの callBackUri に通知を配信します。プッシュ通知は、base64 でエンコードされた data ペイロードを含む JSON エンベロープで届きます。

{"message":{"data":"{base64_encoded_string}"}}

データ文字列をデコードして、JSON イベント ペイロードにアクセスします。次の Spring Boot コントローラのサンプルは、プッシュ通知を受信してデコードする方法を示しています。

@RestController
public class ExampleController {
@RequestMapping(value = "/push",
  method = RequestMethod.POST,
  consumes = {"application/json"},
  produces = {"text/plain"})
  @ResponseStatus(HttpStatus.OK)
  public void handleNotification(@RequestBody String message) {
        JSONObject jsonObject = new JSONObject(message);
        JSONObject jsonMessage = jsonObject.getJSONObject("message");
        String encodedData = jsonMessage.getString("data");
        byte[] decodedBytes = Base64.getDecoder().decode(encodedData);
        String decodedPayload = new String(decodedBytes);
        // Process decodedPayload according to the registered event type
  }
}

次のステップ

サブスクリプションを構成し、特定のイベントのデコードされたペイロードを処理するには、以下をご覧ください。