Amazon AWS SimilarityLookup

  • Amazon E-Commerce Service の API はここに詳細があります.
  • http://docs.amazonwebservices.com/AWSEcommerceService/2007-01-17/
  • SimilarityLookup というAPIで,関連商品の検索をやってみます
  • 検索した商品に関連する1次結果が左側にならび,それぞれに関連する2次結果まで表示してみた.合計100件の関連商品が一覧できる.重複処理や見せ方を工夫すれば結構おもしろいかも.

コントロール

  • Form から ASIN を入力し,そこから1次関連を検索する
  • 1次関連検索結果から,それぞれに対して2次検索を行う
  def amazon_search_sim
    require 'open-uri'
    @asins = []
    @asins_sim = []
    @asin_key = @params[:asin].to_i
    # 関連商品サーチ
    url = "http://webservices.amazon.co.jp/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=#{Amazon_Dev_Token}&Operation=SimilarityLookup&ItemId=#{@asin_key}&ResponseGroup=ItemIds"
    source = open(url).read
    source.gsub(%r!<ASIN>(.+?)</ASIN>!){ @asins << $1 }
    # 関連商品の関連サーチ
    if @asins
      for asin_sim in @asins 
      sleep 1
      url = "http://webservices.amazon.co.jp/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=#{Amazon_Dev_Token}&Operation=SimilarityLookup&ItemId=#{asin_sim}&ResponseGroup=ItemIds"
      source = open(url).read
      source.gsub(%r!<ASIN>(.+?)</ASIN>!){ @asins_sim << $1 }  
      end
    end
    render :layout => false  
  end