AmazonのAPIが変わる件。

メールでも通知が来ていたのですが

Amazon Web Services Developer Community : Amazon アソシエイト Web サービスの名称変更および署名認証についてのお知らせ

さて、このたび、Amazon アソシエイト Web サービスの名称を、「Product Advertising API」と変更しましたことをお知らせいたします。

だそうで、しかも

Amazon Web Services Developer Community : Amazon アソシエイト Web サービスの名称変更および署名認証についてのお知らせ

名称変更にともない、Product Advertising API にリクエストを送信いただく都度、認証のための電子署名を含めていただくことが必要になります。

だそうです。これ、いまAPIを使っているところすべてにこの対応をする必要があるってことですね。(ってさらっと言ったけど、でかいわコレ。)

さっそくRubyで署名を含めたリクエストを作ってみようと、まずはサンプルを再現しようとやっていたら

Product Advertising API

Calculate an RFC 2104-compliant HMAC with the SHA256 hash algorithm

のところで見事にハマりました。「なにを使ってこのHMAC-SHAを作ればいいの?」から始まって、ググってたどり着いた

Amazon SimpleDB を試してみた

ここで、最後のシグネチャは、以下のようにして作る。

を参考に、改行コードいじったりSHA256.newしてみたのだけれど、どうしてもサンプルの結果にならない。URLエンコードのところでもなにやら細工する必要がある(RFC3986?)みたいだし、ここでもなにかあるんじゃないかといろいろ試行錯誤・・・

・・・っというのをすでにたつをさんがやられていて、ここについてるはてブコメント経由で、どうやらサンプルが間違っているという議論にたどり着きました。ハマり疲れた頭ではしっかり読めないのですが、どうも日本語をエンコードするとかしないとかいう問題もあとに控えていた模様。んー・・・、出直すか。

コメント

  1. nobu より:

    なんか、こういう変更があると、無駄にヘコたれそうになるよねぇ 🙁

  2. yoshuki より:

    仕方ないんだろうけど、使いにくくなるなぁ。

タイトルとURLをコピーしました