訳も知らないで

デザイン&プログラミングのことも書くし、それ以外のことも書く。

【Rails】AmazonAPIを使って商品を取得する。

本日はAmazon API商品データを取得してみたいと思います!

Amazon APIを使うための準備

どうやらですね、AmazonのAPIをつかって商品検索を行うには、
2つの登録が必要なようです。

一つ目はともかく、なんで2つ目も必要なんでしょうか…
アフィリエイトとか必要ないのに(´・ω・`)


登録でそんな難しいことは無いですが、
下記に登録についての解説が。

〜参考にさせて頂きました!〜
Amazonアソシエイト・プログラムへの参加 - Amazon Web サービス
最速で Amazon Web Services の Product Advertising API を使って商品検索をしてみよう | ウェブル


gem「amazon-ecs」を使って情報を取得

ActiveResourceをつかってAPIを叩いて〜とも考えたのですが、渡すパラメータを作成するのとか超めんどいので、
amazon-ecsというgemを使用しました。

〜使用させて頂きました!〜
jugend/amazon-ecs · GitHub


gemfileに

gem 'amazon-ecs'

と記載しbundle install。


使い方

まずconfig以下のapplication.rbなんかに
キーの設定を書いておきましょう。

require 'amazon/ecs'
Amazon::Ecs.options = {
  :associate_tag =>     'AmazonアソシエイトのアカウントID(トラッキングID)',
  :AWS_access_key_id => 'Product Advertising API登録で付与されるキー',
  :AWS_secret_key =>    'Product Advertising API登録で付与されるシークレットキー'
}


では実際に使ってみましょう。
商品の検索はitem_searchメソッドで行えます。

amazon = Amazon::Ecs.item_search('keyword', :search_index => 'All', :country => 'jp')

引数一つ目に検索キーワード、その後にハッシュで様々な取得の指定ができます。
(詳しくは上記リンクなどのドキュメントを参照してください)
この例では日本のアマゾンサイトですべてのカテゴリから検索するよう指定しています。


取得したデータからgetメソッドで値を取得できます。
階層がある場合は/で区切れば取得することができます。

amazon.items.each do |item|
  puts item.get("DetailPageURL")  # 詳細ページURLを取得
  puts item.get("ItemAttributes/Title")  # 商品タイトルを取得
end


Amazonはこういった商品検索のAPIや、aws操作のAPIなどユーザーが多いので
使いやすいライブラリなんかもたくさん公開されてますよね。
便利です!!