以下のページの補足です。
https://github.com/amzn/selling-partner-api-docs/issues/122
検索で見つけて読んでくれることを想定しているので、全体をかなり端折っています。
動作環境
- php laravel jlevers/selling-partner-api
エラーの内容(Unauthorized)
$result = $apiInstance->createFeed($body);
を実行した結果、以下のレスポンス(Unauthorized)となる。
[403] {
"errors": [
{
"code": "Unauthorized",
"message": "Access to the resource is forbidden",
"details": ""
}
]
}
Unauthorizedと表示されているので、認証エラー的なやつなのだが、他のAPIは問題く実行できているのに、CreateFeed()のみ、Unauthorizedとなってしまう。
解決策
- ①セラーセントラルに入って、アプリの開発 > アプリの編集 > 次のチェックがついていることを確認する。
- Amazonから発送 Amazonに納品し、Amazonが購入者に直接発送します。フルフィルメント by Amazonも含まれます。
- たぶん、これがUnauthorizedになった制限の理由だと思う。(初めから全てにチェックをつけておけばよかった)
- ②リフレッシュトークンとクライアントIDとクライアントシークレットを新しいのに変更しましょう。そして、キャッシュを消すコマンドを叩く(Laravelなら、php artisan cache:clearとphp artisan config:cache)
- これに気づかなくて、ほぼ一日 Unauthorized と格闘してしまった。
成功
- 成功すると、以下のようなレスポンスとなります。
"feedId": "1126430XXXXX"