Header Ads

AWS.InvalidAssociateエラー解決

Amazonの膨大な商品情報にアクセスして、情報を取得できる
「AWSECommerceService」のAPI。

だが、以前は使用できていたC#で書いた自作プログラムがなぜか動かなかった???




そこで、Responseを受信しているソースコードにBreak Pointを設定して、
リクエスト文字列をチェックして、特にエラーの原因となりやすい、
「Timestamp」「Version」「Signature」に問題がないことを確認した。

ということで、しょうがないので、何が不具合の原因なのかを知るために、
生成文字列をブラウザのURLに貼っ付けて、HTTPアクセスを行った。

実は、アマゾンのエラーレスポンス情報は、
リクエスト文字列「http://ecs.amazonaws.jp/onca/xml?~」で始まるURLに、
ブラウザでアクセスすると、XML形式で、一目で何が悪くてエラーとなっているのかが
わかるようになっている。

今回は、「Your シークレットコード is not registered as an Amazon Associate.」だった。

「登録しているのに、登録されていない?なんだって?」となるわけだが、
私の場合、思い当たる節があった、Amazon Associateに登録しているメールアドレスと、
Amazon Web APIにアクセスするために登録しているメールアドレスが異なっているということだ。

Google検索してみると、どうもそれが大正解のようで、
さっそく登録を変えないとな~とAmazon Associateにアクセス。

2つほど対応方法が思いついたのだが、
1) Amazon Web APIにアクセスするメールアドレスをAmazon Associateのサブメールアドレスとして追加登録する。
2)Amazon Associateに登録しているメールアドレスで、新規にAmazon Web APIに登録する。

しかし、Amazon Web APIのシークレットキーはすでに取得しているので、
アプリの修正手間を考えると、明らかに前者1)を採用するのが得策だった(w

ということで、Amazon Associateにログインして、
右上にある、アカウントの登録からAmazon Web APIに登録している
メールアドレスをサブメールアドレスとして追加で登録した。

紐づけられるにはある程度時間がかかるだろうということで、
半日ほど、あえて時間をあけて、自作アプリからアクセスしたところ、
無事成功♪ヾ(≧▽≦)ノ

良かった~、これで随分楽になるわ~♪(^^)/

以前は動いていたプログラムがAmazonのWeb APIにアクセスできなくなったという方は、
解決の参考にどうぞ♪