目標
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です。
このSQS ARNは後ほど使いますので控えておいてください。
ポリシージェネレーターを開き、以下設定します。
項目名 | 設定値 |
---|---|
Select Type of Policy | SQS Queue Policy |
Effect | Allow |
Principal | 437568002678 |
Actions | SendMessage、GetQueueAttributes |
Amazon Resource Name (ARN) | 先ほど作成された SQS ARN |
Add Statement ボタンを押し、内容確認の上 Generate Policyボタンをクリックします。
そしたらポリシーが作成されますので、これをコピーします。
先ほど作成したSQSキューに戻り、編集ボタンをクリックして編集ページを開きます。
コピーしたポリシーをそのままアクセスポリシーに貼り付けて更新します。
以上でSQSキューの作成完了です。
通知宛先登録
Notifications API createDestination を使って、通知宛先を登録します。
これはGrantless Operationですので、アクセストークンの取得方法を間違わないように注意です!
参考: アクセストークン取得方法
パラメーター | 説明 | Type |
---|---|---|
name | Destination名 | String |
resourceSpecification | SQS宛先情報 | Object |
POST https://sellingpartnerapi-na.amazon.com/notifications/v1/destinations
{
"name": "YourDestinationName",
"resourceSpecification":
{
"sqs":
{
"arn": "arn:aws:sqs:us-east-2:444455556666:queue1"
}
}
}
この destinationId は後で使いますのでメモっておいてください。
{
"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 |
POST https://sellingpartnerapi-na.amazon.com/notifications/v1/subscriptions/ANY_OFFER_CHANGED
{
"payloadVersion":"1.0",
"destinationId":"3acafc7e-121b-1329-8ae8-1571be663aa2"
}
{
"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 エラー発生した場合、 アプリケーションの設定で適切な権限ロールを付与しましたか、アクセストークンの取得方法は間違いありませんか改めて確認してみてください。