ayumu_aoの日記

SIerから事業会社に転職したエンジニアが技術についてや組織論、本の話、今までの体験談などなどを個人的に垂れ流しています。

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という名前で作成)
## 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リファレンス
[https://images-na.ssl-images-amazon.com/images/G/09/associates/paapi/dg/index.html?ItemLookup.html:title]

補足:

APIリファレンスの「 国ごとの ItemSearch の並べ替え値 » JP サイトの並べ替え値」と選んでいくとジャンル毎に使えるソート順パラメータの一覧が出てくる