Notifications サブ API を使用すると、Merchant Center アカウントのデータが変更されたときにプッシュ通知を受け取ることができます。API を定期的にポーリングして変更を検出する代わりに、構成した HTTPS エンドポイントに直接配信されるリアルタイム イベント フィードをサブスクライブできます。
Notifications サブ API は、次の通知をサポートしています。
- 商品の承認状況の変更: リンクされたアカウントまたはサブアカウントのいずれかで、商品の承認状況が変更された場合(商品が不承認または承認された場合など)に、リアルタイムでアラートを受け取ります。
- アカウント サービスの変更:
AccountServiceリソースが作成、更新、削除されたときにリアルタイムでアラートを受け取ります(アカウント サービスの関係が確立、変更、削除された場合など)。
前提条件とコールバック URI の設定
プッシュ通知を受け取るには、callBackUri を指定する必要があります。コールバック URI は、次の要件を満たしている必要があります。
- 認識された認証局が署名した有効な SSL 証明書を持つ、一般公開されている HTTPS アドレスである必要があります。
Content-Typeヘッダーがapplication/jsonに設定された HTTPPOSTリクエストを受け入れる必要があります。通知を受信したことを確認するために、次のいずれかの HTTP ステータス コードを返す必要があります。
102200201202204
複数のサブスクリプションに同じコールバック 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}
通知をデコードする
イベントが発生すると、登録された 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
}
}
次のステップ
特定のイベントのサブスクリプションを構成し、デコードされたペイロードを処理するには、以下をご覧ください。
- 商品のステータスの変更に関するプッシュ通知を取得する: 商品の不承認と承認の更新に登録し、
ProductStatusChangeMessageペイロードを解析する方法について説明します。 - アカウント サービスの変更に関するプッシュ通知を取得する: アカウント関係の更新を登録して
ResourceChangeMessageペイロードを解析する方法について説明します。