Amazon Web Services (Product Advertising API)をちょっと使ってみようかと思って、ID登録したのはいいけれど。
ドキュメント見ながらサンプルリクエストをフォージして送ってみたら
などという冷たいお返事が返ってきたわけで。
Your request should have atleast 1 of the following parameters: Signature, Timestamp.
Signature?何それサンプルには書いてないんだけど…と思いつつ調べてみると、なんかリクエストを送るのに署名が必要らしい。というかつい最近必須になったらしい。(→Amazon Web Service(aws)のAPI変更とか: なんとなく)
ドキュメント(API Version 2009-10-01)には未だにRequired Parametersには書かれてないし、Authentication Parametersにも「optional」と書いてあるのに。amazonのうそつき!
とか書いてあっても意味ねーよ。2009-10-01版のドキュメントでCurrently ... until August 15, 2009っておかしいでしょ。これくらい直そうよ…
Note
Currently you are not required to send the Signature parameter until August 15, 2009. A request without a Signature parameter will still go through. However such a request will not be authenticated.
署名が必要ということで、JavaScriptでの実装はほぼ不可能っぽい。署名のプログラム実装は何とかなるとしても秘密鍵をソース中に書くわけにいかんからなあ。はあ。
認証無しだと他人のIDでリクエスト送りまくりができたわけだから、その対策なんだろうけど、使いにくいよなあコレ…。GoogleみたいにIDとリクエスト発行可能URLがリンクされてる仕組みにしてくれれば認証とかしなくていいのに。