ASIN から商品グループを取得する

ASIN から商品グループを取得したかったので Amazon API を調査.取り合えず,API を叩くためのアクセスキーとシークレットキーを取得する必要があるようなので,以下のページから開発者登録をします.

RubyAmazonAPI を叩くには Amazon::Ecs が良いようなので gem install amazon-ecs でインストールします.その後,適当に以下のようなサンプルコードを記述して実行してみました.

require 'rubygems'
require 'amazon/ecs'

# 初期設定
Amazon::Ecs.options = {
    :aWS_access_key_id  => 'YourAccessKey',
    :aWS_secret_key     => 'YourSecretKey',
    :country            => :jp,
}

# response_group は,'Small', 'Medium', 'Large' の 3種類で,
# 取得できる情報量が変化する.
response = Amazon::Ecs.item_lookup(ARGV[0], { :response_group => 'Small' })
if (response.items.length > 0)
    response.items.each { |item|
        # :response_group => 'Small' で取得できる基本情報
        puts("asin:         #{item.get('asin')}")
        puts("author:       #{item.get('author')}")
        puts("title:        #{item.get('title')}")
        puts("manufacturer: #{item.get('manufacturer')}")
        puts("group:        #{item.get('productgroup')}")
        #puts("url:         #{item.get('detailpageurl')}")
        
        # これ以降は,:response_groupe で Medium 以上を選択したときのみ
        #puts("salesrank:   #{item.get('salesrank')}")
        #puts("largeimage:  #{item.get('largeimage/url')}")
        #puts("mediumimage: #{item.get('mediumimage/url')}")
        #puts("smallimage:  #{item.get('smallimage/url')}")
        #puts("amount:      #{item.get('amount')}")
    }
else
    puts("#{ARGV[0]}: products not found")
end

実行してみた結果.

$ ruby test-amazon.rb 4873113679
asin:         4873113679
author:       Yugui
title:        初めてのRuby
manufacturer: オライリージャパン
group:        Book

Amazon API は問い合わせる際に,取得できる情報量を Small, Medium, Large から選択できるようで,Small だと上記のような基本情報のみが返ってきます.Medium だとこれに加えて,画像 URL,値段などの情報が付加されます.Large は何かいっぱい付いてくるようです.http://kagayoshito.com/posts/show/18 で全て(?)の情報を出力するサンプルコードが挙がっているので,この辺りを参考にすると良いかもしれません.