amazon-ecsでAmazon Product Advertising APIを使ってみました
背景
漫画本を扱うアプリを作りたいな、と考えていて、そのための調査として、AmazonのAPIはどんなことが出来るのかな、と調べてみました。
Rubyで使うためのgemを調べたらamazon-ecs
というのが見つかったので、とりあえずそれを使いました。
触ったのは主に、商品検索関連です。
事前準備
AmazonのAPIが使えるようにユーザ登録しておく必要があります。
このページから行いました。
リファレンス
書き方・使い方
接続するためのキーなどを登録
Amazon::Ecs.configure do |options| options[:AWS_access_key_id] = '[your access key]' options[:AWS_secret_key] = '[you secret key]' options[:associate_tag] = '[your associate tag]' end
商品を検索する
item_search
というメソッドを使います。 APIリファレンス
検索対象は、何も設定しないとデフォルトはBook
になるようです。
res = Amazon::Ecs.item_search( '', # Keyword検索の内容を入力します :title => '僕だけがいない街', # titleだけで調べたい場合にはこちらを :sort => 'titlerank', # 取得された結果(レスポンス)の中でのソート順になるので、注意が必要です :tag_sort => 'Name', # 取得される結果をソートします :browse_node => '2250738051', # 検索対象をより細かく設定したい場合に使います。この値はKindleストアです :country => 'jp' )
注意事項としては、一度のitem_search
メソッドでレスポンスとして受け取れるのは、最大10個までなので、全ての結果を取得するには、:item_page
のパラメータを使って、複数回問い合わせる必要があるようです。
取得されたデータから値を抽出する
上記のような処理を行うとAmazon::Ecs.Response
クラスが結果として返されます。この中身はXMLになっているようですが、準備されているメソッドで欲しい情報を取得できます。
流れとしては、Amazon::Ecs.Response
クラスからAmazon::Ecs.Element
クラスを取得して、Amazon::Ecs.Element
クラスのメソッドでタイトルなどの値が抽出できます
res.total_pages # 検索結果が全部で何ページ分あるのか確認できます res.items.each do |item| # itemsメソッドで、Elementの配列が取得できます puts item.get('ASIN') #Amazonの商品コードを取得 puts item.get('ItemAttributes/Title') # タイトルを取得 p item.get_hash # Elementの内容をHashに変えて処理できるようになります end
商品IDから商品を検索する
item_search
以外にもitem_lookup
というメソッドがあります。 APIリファレンス
こちらは、商品IDから該当する商品情報を取得するのに便利です
使い方としては、第一引数にASIN(Amazon Standard Identification Number)
を渡してあげれば良くて、Responseから先はitem_seach
とほぼ同じ流れになります
asins = ['B00UGU4LF4','B010N2825O'] # ASINはカンマ区切りの文字列で最大10個まで渡せます Amazon::Ecs.item_lookup(asins.join(','),:country => 'jp').items.each do |item| puts item.get('ItemAttributes') end
その他
item_search
もitem_lookup
も:country
というオプションを使っていますが、このオプションはAPIリファレンスには無いものです。
amazon-ecs
として、リクエストを投げるURLを決めるのに使うようなのですが、APIリファレンスに無いために、私はよく書き忘れてしまいます。。。
対策として、最初のconfigure
でoptions[:country] = 'jp'
と書いてしまえば、毎回書く必要は無くなります。(何もしないとデフォルトはus
になっているようです)
- 作者: 三部けい
- メディア: Kindle版
- この商品を含むブログを見る
僕だけがいない街(6)<僕だけがいない街> (角川コミックス・エース)
- 作者: 三部けい
- 出版社/メーカー: KADOKAWA / 角川書店
- 発売日: 2015/07/04
- メディア: Kindle版
- この商品を含むブログ (1件) を見る