メールでも通知が来ていたのですが
Amazon Web Services Developer Community : Amazon アソシエイト Web サービスの名称変更および署名認証についてのお知らせ
さて、このたび、Amazon アソシエイト Web サービスの名称を、「Product Advertising API」と変更しましたことをお知らせいたします。
だそうで、しかも
Amazon Web Services Developer Community : Amazon アソシエイト Web サービスの名称変更および署名認証についてのお知らせ
名称変更にともない、Product Advertising API にリクエストを送信いただく都度、認証のための電子署名を含めていただくことが必要になります。
だそうです。これ、いまAPIを使っているところすべてにこの対応をする必要があるってことですね。(ってさらっと言ったけど、でかいわコレ。)
さっそくRubyで署名を含めたリクエストを作ってみようと、まずはサンプルを再現しようとやっていたら
Calculate an RFC 2104-compliant HMAC with the SHA256 hash algorithm
のところで見事にハマりました。「なにを使ってこのHMAC-SHAを作ればいいの?」から始まって、ググってたどり着いた
ここで、最後のシグネチャは、以下のようにして作る。
を参考に、改行コードいじったりSHA256.newしてみたのだけれど、どうしてもサンプルの結果にならない。URLエンコードのところでもなにやら細工する必要がある(RFC3986?)みたいだし、ここでもなにかあるんじゃないかといろいろ試行錯誤・・・
・・・っというのをすでにたつをさんがやられていて、ここについてるはてブコメント経由で、どうやらサンプルが間違っているという議論にたどり着きました。ハマり疲れた頭ではしっかり読めないのですが、どうも日本語をエンコードするとかしないとかいう問題もあとに控えていた模様。んー・・・、出直すか。
コメント
なんか、こういう変更があると、無駄にヘコたれそうになるよねぇ 🙁
仕方ないんだろうけど、使いにくくなるなぁ。