はじめに
Ruby初心者ですが、個人的プロジェクトで勉強がてら使っています。そのプロジェクトで楽天のAPIを使ってBOOKOFFの価格を調べるという必要が出てきたので、ちょっとやってみました。
開発・実行環境
MacBook ProOSX El Capitan (10.11.3)
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin15]
使用したAPI
キーワードと楽天ショップを指定して商品リストを取得するAPI。
楽天商品検索API (version:2014-02-22)準備
- 楽天でアプリケーションIDを取得こちらから。
- Rubyのgemが用意されているので、gem install rakuten_web_service
サンプルコード
上記楽天のサイトにRubyのサンプルが載っています。下のコードはサンプルを少しだけいじったものです。楽天のサンプルそのままだと私の環境ではエラーが出たので、require 'uri'
を追加したところ動作しました。
Item.searchで楽天ショップのshopCodeというのを与えるのですが、BOOK OFFの場合、urlが下記のようになっています。
http://www.rakuten.ne.jp/gold/bookoffonline/
最後の"bookoffonline"の部分がshopCodeのようです。
入れてみたらそれっぽく動きました。
require 'rakuten_web_service' require 'uri' # 楽天のサンプルに追加 RakutenWebService.configuration do |c| c.application_id = 'YOUR_APPLICATION_ID' # 取得したアプリケーションIDで置き換える c.affiliate_id = 'YOUR_AFFILIATE_ID' # この行はなくても大丈夫そう。 end items = RakutenWebService::Ichiba::Item.search(:keyword => 'ゼノブレイド', :shopCode => 'bookoffonline') items.each do |item| if item['availability'] == 1 #在庫があるか
#取得したデータを適当に出力 puts "#{item['itemName']}, #{item.price} yen, #{item['shopName']}, #{item['genreId']}, #{item['itemCode']}" puts "#{item['itemCaption']}" puts "#{item['itemUrl']}" end end
おわりに
できればJANコードから検索できるといいのですが、このAPIでは対応していないようです。keywordにJANコードを入れるとBOOKOFF指定では何も結果が得られませんでした。店舗指定なしだと、商品名にJANコードが入っていればヒットします。
0 件のコメント:
コメントを投稿