AmazonのAPI調べてるんだけど、今日中ではついに叩けなかった
ドキュメントに書いてないけど必要なパラメーターがあるというトラップに引っかかってしまった
ここまでわかった
まず、
http://ecs.amazonaws.com/onca/xml?
Product Advertising API
Service=AWSECommerceService&
Operation=ItemSearch&
AWSAccessKeyId=[アクセスキー ID]&
AssociateTag=[ID]&
SearchIndex=Apparel&
Keywords=Shirt
というサンプルリクエストが提示されていますが、これ動きません。
<?xml version="1.0"?> <ItemSearchErrorResponse xmlns="http://ecs.amazonaws.com/doc/2005-10-05/"> <Error> <Code>MissingParameter</Code> <Message>The request must contain the parameter Signature.</Message> </Error> <RequestId>e884b4a1-8bcd-4ce3-9b88-6ccd64018297</RequestId> </ItemSearchErrorResponse>
ちゃんとIDを埋めてもこんなのが返ってきます。(本物のレスポンスはインデントされてない)
実は書名が必要なのが見て取れますが、ならばと署名をつけてみると今度は
<Message>The request must contain the parameter Timestamp.</Message>
というのが返ってきます(Message要素のみ引用)。
そうかそうならばと今度はタイムスタンプをつけてみたところ…
<Error> <Code>SignatureDoesNotMatch</Code> <Message>The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.</Message> </Error>
(Error要素のみ引用)
・・・・・・・・・・・・・・。
今日はここまででした。ライブラリー使ってもいいんよってところですが、一応確認しておきたかったのでリクエスト投げてるんです。ライブラリー使うにしてもどのみち認証通らないとお話にならないのでこれは暗雲立ち込めてきましたですね…