きっとまた仕様が変わったんでしょうね。案内も来ているはずですが、そんなの見るわけない。
まぁ、エラーの内容が「リクエストには、必要なパラメータが含まれていません。必要なパラメータには、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 ^^
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週以上迷っていますが到底解決方法がわかりません。いきなり本当に申し訳ないですが、教授してもらえれば本当に助かります。
これをそのまま実行すると「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.
私も、今そっちの問題ではないかと思って調べています。それでKeyをもう一度もらってみましたが運...まだ解決できない状態です。QnAにきこうとしたらなんかけんげんがないとかいってるしT.T 今もう一つ気になるのはOperationですけれども住所でOperationが入ったらすぐページを見つけられないと出てます。もちょっと頑張って調べてみます、ほんとありがとうございました。
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
kimさんの「40887007028」というコードはISBNとして存在しないようですね。
近くにある本のISBNの13ケタを入れて、その上記のアドレスを実行してみては?
たとえば、「9784798008851」は実在する本のISBNコードなので、試してみてください。
Good Luck!
間違っているISBNでずっとしていましたT.T
わたしのことをばかだといってくださいT.Tとにかく本当にありがとうございます。課長に誇らしげに言えます。