重要:アマゾンProduct Advertising APIの仕様変更についてとなっている。
(途中略)
全てのAPIへのリクエストにおいて、AssociateTagが必須パラメータとなり、リクエスト処理時の確認対象となります。
(以下略)
仕方が無いので、リクエストにAssosicate Tagを追加して送るように書き換えてみたが、動かない。同時に、検索結果として戻って来るxml (WSDL)の体系も変更になったようだ。それも書き換えて、さあどうだ!と思ったが、今度は検索結果が文字化けしている。
(2012年6月29日追記:amazon/ecsの最新バージョン(2.2.4)では、文字化けは解消されている)
-
githubからamazon/ecsのソース(ecs.rb)をダウンロードし、保存 ecs.rbの141行目を書き換え@doc = Nokogiri::XML(xml) ↓ @doc = Nokogiri::XML(xml, nul, 'UTF-8')オリジナルのスクリプトに記載しているrequire文もそれに合わせ修正
(2011年11月13日追記)
予想外に何件かのアクセスがあったので、簡単なソースを紹介。スクリプト名は"test.rb"。
require 'rubygems' require 'amazon/ecs' # パラメータ設定( associate tag, access key, secret key) Amazon::Ecs.options = { :associate_tag => '[your associate tag]', :AWS_access_key_id => '[your developer token]', :AWS_secret_key => '[your secret access key]' } # amazon-ecsの呼び出し # ruby スクリプト名 ISBNの形式で実行する #(ARGV[0]にはISBNが入る) res = Amazon::Ecs.item_search( ARGV[0], {:search_index => 'Books', :response_group => 'Medium', :country => 'jp'}) #結果の表示(著者名等は適宜追加) res.items.each do |item| print "ASIN= ", item.get('ASIN'), "\n" print "Title= ", item.get('ItemAttributes/Title'), "\n" end
結果:
$ ruby test.rb 9784101181066 ASIN= 4101181063 Title= マキアヴェッリ語録 (新潮文庫)