読者です 読者をやめる 読者になる 読者になる

blog.syfm

徒然なるままに考えていることなどを書いていくブログ

Amazon Product Advertising API で AWS.InvalidAssociate エラー

ちょっと Amazon Product Advertising API (PAAPI) を利用する必要があって、ドキュメントを読みながら進めていたら、以下のようなエラーに悩まされた。
かなりハマったので備忘録的な感じで書いておきたい。

ちなみに、REST API で ItemSearch を叩いていた。

<?xml version="1.0"?>
<ItemSearchErrorResponse xmlns="http://ecs.amazonaws.com/doc/2005-10-05/">
  <Error>
    <Code>AWS.InvalidAssociate</Code>
    <Message>Your [ACCESS_KEY] is not registered as an Amazon Associate. Please register as an associate at https://affiliate-program.amazon.com/gp/associates/join/landing/main.html.</Message>
  </Error>
  <RequestId>a047206b-9423-48b9-ac8e-ec33265a83c1</RequestId>
</ItemSearchErrorResponse>

ググってみると、Amazon アソシエイトと PAAPI に登録したときに必要なメールアドレスが同じものでないといけないので合わせましょうというような解決策は出てくるけど、自分の場合、同じメールアドレスを使用しているにも関わらず、そのようなエラーが出ていた。
時間を置いてみたり、Scratchpad を使っても同じエラーが出ていたのでどうしたものか…と思っていたけど、webservices.amazon.co.jp にリクエストを送るようにしたら解決した。

具体的には、API を叩くにあたってエンドポイントを指定する必要があるけど、公式のリファレンスには webservices.amazon.com へリクエストを送るようになっている。
そこを webservices.amazon.co.jp へ変更する感じ。
同様にシグネチャ生成の部分も変える必要がある。

変更すると無事リクエストが成功し、結果が返ってきた。
大雑把にググってもこの情報は出てこなかったので、もしかしたらなにかしらの条件下でしか起こらないのかもしれない…。リージョンの問題?