重要:アマゾン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= マキアヴェッリ語録 (新潮文庫)