重要:2009年8月15日をもって、Product Advertising API は、署名認証を含まないリクエストを一切処理しなくなります。現在、Product Advertising API を利用されている方は、今すぐご利用中のすべてのリクエストに署名認証を含める準備を開始いただけますようお願いいたします。署名認証を含んだリクエストは、今すぐご利用いただけますので、Developer Guide またはDeveloper Guide - リクエストの署名認証について(日本語参考訳)をご覧の上、準備を行っていただけますようお願いいたします。ご不明な点がありましたら、よくあるご質問をご参照ください。
( Д)  ゚ ゚


何か13日から使えなくなってるし
しょうがないから修正した
時間がないのに…


説明書きには、

元URLから名前と値のペアを取り出してそれをソートしてGETとwebservices.amazon.co.jpと/onca/xmlを付けてHMAC with the SHA256ハッシュアルゴリズムを使って計算し署名を作成して署名をURLエンコードしてそいつをSignatureパラメータ値として追加しろ

見たいな事が書いてあった
前半がめんどくさかったので、最初から名前をソートしたURLにして回避
以下追加コード

    hmac = OpenSSL::HMAC.new(AWSSECRETKEY, OpenSSL::Digest::SHA256.new)
    hmac.update(sts)
    signature = CGI.escape(Base64.encode64(hmac.digest).chop)

あとタイムスタンプのパースが上手くできなかったので強引に対処

#          "&Timestamp=" + timestamp.strftime("%Y-%m-%dT%H:%M:%SZ") +
          "&Timestamp=" + timestamp.strftime("%Y-%m-%dT%H%%3A%M%%3A%SZ") +

約半年振りのRuby
結局6時間くらい掛かってしまった