カタカタブログ

SIerで働くITエンジニアがカタカタした記録を残す技術ブログ。Java, Oracle Database, Linuxが中心です。たまにRuby on Railsなども。

Amazon Product Advertising API を使ってみた2 (Rubyから実行)

前回の記事で、AmazonのProduct Advertising APIを使ってみた。

Amazon Product Advertising API を使ってみた - カタカタブログ

リクエストには署名が必要で署名にはRequest Helperというページで生成したが、これだとプログラムから使えないので、プログラムで署名してAPIを使ってみる。RubyでAPIを実行することをゴールとする。

どのような署名を付与すればよいかという暗号化の仕組みは以下に詳しい説明があった。どうやらタイムスタンプを取得し、リクエストをまるごとハッシュ化してリクエストの末尾に付与すればいいらしい。タイムスタンプを付与するということなので、リクエストごとに動的に作成する必要があるよう。
http://www.ajaxtower.jp/ecs/para/index11.html

暗号化の方法も分かったので実装してみるか、と思ったがこんなのはすでに誰かが実装しているのではなかろうか?と思って調べたところ、やはり過去にいろいろな人が様々な言語で実装済みだった。

さらにRubyでの実装も以下にあった!素晴らしい。ありがたく使わせていただく。
http://blog.bungu-do.jp/archives/871

ただし上記サイトのコードをそのまま使ったところ、AssociateTagが含まれずにエラーが返ってきたので、以下の行だけ追加した。

req << “AssociateTag=XXXXXX-22# AssociateTag追加

上記のコードを実行し、出力されたURLをブラウザに貼り付けて、正しくXMLで検索結果が取得できた。

以上。