amazon-ecs を利用したスクリプトが動かなくなっていたのでざっと修正.crown | RubyGems.org | your community gem host にも amazon-ecs に依存していた部分があっておかしくなっていたので,該当部分を修正しました.
Amazon 自体の変更
1点目は,全ての API へのリクエストにおいて,AssociateTag が必須パラメータとなったようです(こちらは,今までも指定していたので特に問題にはなりませんでしたが).2点目は,検索結果用の XML の名前が変更されたようで,具体的には,全て小文字で表記されていたのが大文字・小文字混合となったようです(例:author→Author,url→URL,...).何故,いまさら・・・
amazon-ecs の変更
amazon-ecs の方も変更があって,アクセスキーとシークレットキーの定数名がそれぞれ変更されたようです(最初の一文字が大文字に).
Amazon::Ecs.options = { :associate_tag => '[your associate tag]', - :aWS_access_key_id => '[your developer token]', - :aWS_secret_key => '[your secret access key]' + :AWS_access_key_id => '[your developer token]', + :AWS_secret_key => '[your secret access key]' } # alternatively, Amazon::Ecs.configure do |options| options[:associate_tag] = '[your associate tag]' - options[:aWS_access_key_id] = '[your access key]' - options[:aWS_secret_key] = '[you secret key]' + options[:AWS_access_key_id] = '[your access key]' + options[:AWS_secret_key] = '[you secret key]' endhttps://github.com/jugend/amazon-ecs/commit/c44cbcd7920a015f71285b6c517d6d6a4a4b91e3
もう一つは amazon-ecs の変更点ではないのですが,既存のままだと取得した XML を操作する際に文字化け?するようです.こっちは,amazon/ecs.rb を直接修正する事で回避する模様.
Macなこと: amazon/ecs rubyでISBNを検索する(改訂版)
- githubからamazon/ecsのソース(ecs.rb)をダウンロードし、保存
- ecs.rbの141行目を書き換え
@doc = Nokogiri::XML(xml)
↓
@doc = Nokogiri::XML(xml, nul, 'UTF-8')- オリジナルのスクリプトに記載しているrequire文もそれに合わせ修正