ラブラドールレトリバー「忠太の心の声」

黒ラブ忠太と忠太パパのブログ。
最近は仕事の備忘録としてのエントリーが多いです。

Amazon API につながらなくなった

2011-10-27 | Web・PC

きっとまた仕様が変わったんでしょうね。案内も来ているはずですが、そんなの見るわけない。

まぁ、エラーの内容が「リクエストには、必要なパラメータが含まれていません。必要なパラメータには、AssociateTagなどがあります。」だから、素直に追加してみました。

ちなみに、「AssociateTag」はすでにもっています。

 

PHPの場合こんな感じでしょうか。

$url = 'http://ecs.amazonaws.jp/onca/xml' .

    '?Service=AWSECommerceService' .

    '&AWSAccessKeyId='  . $access_key_id .

    '&Version=2009-03-31' .

    '&Operation=ItemLookup' .

    '&SearchIndex=Books' .

    '&IdType=ISBN' .

    '&ItemId=' . $itemid .

    '&ResponseGroup=Large'.

    '&AssociateTag=********-22';

最後の「AssociateTag」を追加しないと今日からエラーになるようです。
あ、やっぱり告知はあったみたいですね。まぁ直ればおk ^^



最新の画像もっと見る

7 コメント

コメント日が  古い順  |   新しい順
今回の更新に質問あります (kim)
2011-11-24 11:12:05
こんにちは。私は学校の先輩が作ったandroidアプリを修正しています。amazonのapiを使ったものですけれども、これが久しぶりに触ってみたら、急にamazonのデータを撮れなくなっていたんです。その原因として今回のapiの更新を考えています。それで日記のようにassociatetagを追加しました。しかしそれでも今できない状態で。あのurlを送ってwdslを取得するべきなんですけれども、送ったurlを確かめてみたら。

http://ecs.amazonaws.jp/onca/xml?AWSAccessKeyID=AKIAJQYVVGQGAC63Q6CQ&AssociateID=ktshas-22&IdType=ISBN&ItemId=4088700702&Operation=ItemLookup&ResponseGroup=Medium&SearchIndex=Books&Service=AWSECommerceService&Timestamp=2011-11-24T00%3A17%3A28Z&Version=2011-08-01&Signature=MyN9LzmyRRXZJZqXRzeThuaoOzD6pUxifHKmItDYiaQ%3D

これがそのURLですけれどもページが出ません。それぢ一番後ろのsigunature消してみたらWSDLページは出てきますけどaccsesskeyが必要だとerrorが出ています。確かに書いておいたのに...

ソースはこう書いていきました

helper = SignedRequestsHelper.getInstance(strState, AWS_ACCESS_KEY_ID, AWS_SECRET_KEY);
} catch (Exception e) {
//System.exit(0);
e.printStackTrace();
return null;
}

String requestUrl = null;
Map<String, String> params = new HashMap<String, String>();
params.put("Service", "AWSECommerceService");
params.put("Version", "2011-08-01");
params.put("Operation", "ItemLookup");
params.put("IdType", "ISBN");
params.put("ItemId", strISBN);
params.put("ResponseGroup", "Medium");
params.put("SearchIndex", "Books");
params.put("AssociateTag", "ktshas-22");
requestUrl = helper.sign(params);

return requestUrl;
そして,上のものは requestUrlの値を確かめてみたものです。それで今ちゃんとしたWSDLを習得できなくてNULLが入っている状態です。私この問題で2週以上迷っていますが到底解決方法がわかりません。いきなり本当に申し訳ないですが、教授してもらえれば本当に助かります。
返信する
Re:今回の更新に質問あります (忠太パパ)
2011-11-24 15:00:48
こんにちは。
これをそのまま実行すると「Request has expired.」タイムスタンプの時間切れになるので、タイムスタンプを新しくして実行してみると、

MissingClientTokenId
Request must contain AWSAccessKeyId or X.509 certificate.

「リクエストに AWSAccessKeyId もしくは X.509 証明書がない」といわれますね。
私が分かるのはここまでです。

いままで正常に動いていたのであれば、今回のAWSの変更では AssociateTag を追加するだけでOKなはずです。
もういちど、AWSAccessKeyId, 秘密キーを確認してみてください。さらに、Signatureの生成は正しいか?違いはこれくらいです。

私のところより、賢者が多くいらしゃるQ&Aサイトで聞いてみてください。

ちなみに、この ItemId は存在しないですよね?

Good luck.
返信する
ありがとうございます (kim)
2011-11-25 08:27:23
まずItemIdは、変数ですのでアプリで入力したISBN数字が入ります。
私も、今そっちの問題ではないかと思って調べています。それでKeyをもう一度もらってみましたが運...まだ解決できない状態です。QnAにきこうとしたらなんかけんげんがないとかいってるしT.T 今もう一つ気になるのはOperationですけれども住所でOperationが入ったらすぐページを見つけられないと出てます。もちょっと頑張って調べてみます、ほんとありがとうございました。
返信する
大間違いしていました。 (kim)
2011-11-25 09:14:51
上の書いておいた住所を打ち違いしてました。ちゃんとした住所がこれで
http://ecs.amazonaws.jp/onca/xml?AWSAccessKeyId=AKIAJQYVVGQGAC63Q6CQ&AssociateTag=ktshas-22&IdType=ISBN&ItemId=4088700702&Operation=ItemLookup&ResponseGroup=Medium&SearchIndex=Books&Service=AWSECommerceService&Timestamp=2011-11-25T00%3A01%3A24Z&Version=2011-08-01&Signature=qpqEV%2FZ4fKQdVHwJXEb9BrHGJ%2FPhSUTwQ%2FikCGwImpc%3D
まあ、まだできないじょうたいはおなじですけれども、ItemIdの値が無効だと出ています。
IdTypeがISBNでItemIdにISBN子どを書いただけで、これ以前にはできていたのになぜエーらカはわからないですけど、なんか、ちょっとしていけそうです、本当ありがとございますT.T
返信する
Re:大間違いしていました。 (忠太パパ)
2011-11-25 10:05:57
ItemIdには、ご存知の通りISBNコードが入ります。

kimさんの「40887007028」というコードはISBNとして存在しないようですね。
近くにある本のISBNの13ケタを入れて、その上記のアドレスを実行してみては?

たとえば、「9784798008851」は実在する本のISBNコードなので、試してみてください。

Good Luck!
返信する
ありがとうございます!!! (kim)
2011-11-25 10:26:50
今解決してあいさつしようとしてきましたが返事がありましたね。今まですっと同じISBNで実験していましたが。私著バカでした。
間違っているISBNでずっとしていましたT.T
わたしのことをばかだといってくださいT.Tとにかく本当にありがとうございます。課長に誇らしげに言えます。
返信する
Re:ありがとうございます!!! (忠太パパ)
2011-11-25 10:30:21
よかったよかった^^
返信する

コメントを投稿