AmazonAPIでランキングを取得してみる
AmazonAPIでランキングを取得してみる
簡単に試すためにwheneverを利用してBatchを作って実験してみました〜
APIを使うためにはアソシエイトの登録が必要です。
Amazonアソシエイトの登録を行ない、アクセスキー、シークレットキーの取得を行なっていることを前提に記載しています。
Gemfile
下記を追記
gem 'amazon-ecs' # 定時実行 gem 'whenever', require: false
config/environment.rb
ファイル末端に追記
Amazon::Ecs.debug = true Amazon::Ecs.options = { :AWS_access_key_id => "xxxxxxxxxxxxx", :AWS_secret_key => "xxxxxxxxxxxxxxxxx", :associate_tag => "xxxxxxxxxxx-22", :country => :jp }
タスクファイル作成
下記コマンドを実行(今回はitem_rankingという名前で作成)
rails g task item_ranking
Batch実装
lib/task/item_ranking.rake
に実装
namespace :item_ranking do desc "call to amazon api for Ranking" task :item_ranking => :environment do |variable| # デバックログ出力するために記述 Amazon::Ecs.debug = true res = Amazon::Ecs.item_search( "hogehoge", # キーワードを入力 search_index: '', # 抜きたいジャンルを指定 country: 'jp', sort: 'salesrank' # ソート順を売上順に指定することでランキングとする ) i = 0 res.items.each do |item| i = i + 1 p "第#{i}位" p item.get('ItemAttributes/Title') end end end
APIリファレンス
補足:
APIリファレンスの「 国ごとの ItemSearch の並べ替え値 » JP サイトの並べ替え値」と選んでいくとジャンル毎に使えるソート順パラメータの一覧が出てくる