LoginSignup
1
0

More than 1 year has passed since last update.

Notification API 通知サブスクリプション登録方法

Posted at

目標

SPAPI Notification API (旧 MWS Subscription API)で通知サブスクリプション登録します。
今回は ANY_OFFER_CHANGED という通知タイプで登録行います。

各通知タイプの説明はこちらでご確認ください:
https://developer-docs.amazon.com/sp-api/docs/notifications-api-v1-use-case-guide#notificationtype

前提

・ AWSアカウントを作成されている
・ SPAPIに連携済で、リクエストコールできる状態のストアがあること

1. SQSメッセージキュー作成

Amazon通知の宛先を作成します。
使うのはAmazon Simple Queue Service(SQS)です。

タイプは標準に設定して、名前を入れてキューを作成します。
今回はデフォルト設定で、許可ポリシー、暗号化、デッドレターキュー、タグ全てなしです。
アクセスポリシーは後で変更しますのでひとまずデフォルトでOKです。
スクリーンショット_2022-04-28_16_11_30.jpg

このSQS ARNは後ほど使いますので控えておいてください。
スクリーンショット_2022-04-28_16_12_06-2.jpg

ポリシージェネレーターを開き、以下設定します。

項目名 設定値
Select Type of Policy SQS Queue Policy
Effect Allow
Principal 437568002678
Actions SendMessage、GetQueueAttributes
Amazon Resource Name (ARN) 先ほど作成された SQS ARN

Add Statement ボタンを押し、内容確認の上 Generate Policyボタンをクリックします。
そしたらポリシーが作成されますので、これをコピーします。
スクリーンショット 2022-04-28 16.24.53.png

先ほど作成したSQSキューに戻り、編集ボタンをクリックして編集ページを開きます。
コピーしたポリシーをそのままアクセスポリシーに貼り付けて更新します。
スクリーンショット_2022-04-28_16_40_48.jpg

以上でSQSキューの作成完了です。

通知宛先登録

Notifications API createDestination を使って、通知宛先を登録します。
これはGrantless Operationですので、アクセストークンの取得方法を間違わないように注意です!
参考: アクセストークン取得方法

パラメーター 説明 Type
name Destination名 String
resourceSpecification SQS宛先情報 Object
Request Sample
POST https://sellingpartnerapi-na.amazon.com/notifications/v1/destinations
{
  "name": "YourDestinationName",
  "resourceSpecification":
  {
    "sqs":
    {
      "arn": "arn:aws:sqs:us-east-2:444455556666:queue1"
    }
  }
}

この destinationId は後で使いますのでメモっておいてください。

Response Sample
{
  "payload": {
    "name": "YourDestinationName",
    "destinationId": "ExampleDestinationId",
    "resource": {
      "sqs": {
        "arn": "arn:aws:sqs:us-east-2:444455556666:queue1"
      }
    }
  }
}

通知登録

前手順で作成した宛先に配信される通知サブスクリプションを登録します。
Notifications API createSubscription を使います。
こちらは通常のGranted Operationsで、アクセストークンの取得方法は前手順と変わりますので注意!

Path パラメーター 説明 Type
notificationType 通知タイプ、今回は ANY_OFFER_CHANGED を使います String
Body パラメーター 説明 Type
payloadVersion payloadバージョン String
destinationId 前手順で登録した宛先ID String

参考: アクセストークン取得方法

Request Sample
POST https://sellingpartnerapi-na.amazon.com/notifications/v1/subscriptions/ANY_OFFER_CHANGED
{
  "payloadVersion":"1.0",
  "destinationId":"3acafc7e-121b-1329-8ae8-1571be663aa2"
}
Response Sample
{
  "payload": {
    "subscriptionId": "7fcacc7e-727b-11e9-8848-1681be663d3e",
    "payloadVersion": "1.0",
    "destinationId": "3acafc7e-121b-1329-8ae8-1571be663aa2"
  }
}

これで通知配信の登録が完了です。
出品中商品の上位20オファーに変動がある度、SQSにメッセージ配信されます。
メッセージ内容は、SQS内の メッセージ送受信 > メッセージをポーリング で確認できます。

注意点

  • SPAPIはFIFOタイプのSQSキューを対応していませんので、必ず標準タイプでSQSキュー作成してください。
  • 403 Unauthorized エラー発生した場合、 アプリケーションの設定で適切な権限ロールを付与しましたか、アクセストークンの取得方法は間違いありませんか改めて確認してみてください。

参考

Notifications API v1 Use Case Guide
アクセストークン取得方法

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0