No description, website, or topics provided.
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
examples
lib
spec
.gitignore
.travis.yml
Gemfile
Guardfile
LICENSE.txt
README.md
Rakefile
rakuten_api.gemspec

README.md

RakutenApi

Build Status

楽天ウェブサービス(http://webservice.rakuten.co.jp/) のAPIクライアントです。

以下のAPIに対応しています。

Supported Ruby Interpreters

  • 1.9.3
  • 2.0.0
  • Rubinius 19mode

Installation

Add this line to your application's Gemfile:

gem 'rakuten_api'

And then execute:

$ bundle

Or install it yourself as:

$ gem install rakuten_api

Usage

共通設定

どこでもいいので、以下を追加します。

Railsアプリケーション等の場合は、initializer等に登録してください。

RakutenApi.configure do |config|
  config.application_id = "[applicationId]"
  config.affiliate_id = "[affiliateId]"
end

商品検索API 2

  • keyword: 'りんご', hits: '2'(2商品だけ表示)での検索
client = RakutenApi::GenreSearch::Client.new do |params|
  params.add_param :keyword, 'りんご'
  params.add_param :hits, 2
end

response = client.request

p response.status # => 200
p response.body # => APIのレスポンスBodyをJSONデコードした値が入っている
p response.page_count # => 100 (取得可能なページ数)(この場合は100まで指定可能を意味する)
p response.page # => 1 (現在のページ番号)
p response.carrier # => 0 (キャリア) (0: PC, 1: 携帯, 2: スマートフォン)
p response.first # => 1 (現在の表示商品始)(1つめを意味する)
p response.last # => 2 (現在の表示商品終)(2つめを意味する)
p response.simple_mapping
# => [
# #<RakutenApi::ItemSearch::Model:0x007fcb6cd6a350 @item_name="グルメ大賞2010 青森県産 りんご サンふじ...略", @catchcopy="【送料無料】りんご 青森産 サンふじ...略" @item_url="http://item.rakuten.co.jp/cameashi/10000323/", @affiliate_url="", @small_image_urls=["http://thumbnail.image.rakuten.co.jp/@0_mall/cameashi/cabinet/00473472/2012fuji-f5kgb.jpg?_ex=64x64", "http://thumbnail.image.rakuten.co.jp/@0_mall/cameashi/cabinet/00473472/img58491689.jpg?_ex=64x64", "http://thumbnail.image.rakuten.co.jp/@0_mall/cameashi/cabinet/00473472/img55339932.gif?_ex=64x64"], @medium_image_urls=["http://thumbnail.image.rakuten.co.jp/@0_mall/cameashi/cabinet/00473472/2012fuji-f5kgb.jpg?_ex=128x128", "http://thumbnail.image.rakuten.co.jp/@0_mall/cameashi/cabinet/00473472/img58491689.jpg?_ex=128x128", "http://thumbnail.image.rakuten.co.jp/@0_mall/cameashi/cabinet/00473472/img55339932.gif?_ex=128x128"], @image_flag=true, @availability=true, @tax_flag=false, @postage_flag=false, @creadit_card_flag=true, @shop_of_the_year_flag=false, @ship_overseas_flag=false, @asuraku_flag=false, @gift_flag=false, @ship_overseas_area="", @asuraku_closing_time="", @asuraku_area="", @affiliate_rate=1, @start_time="", @end_time="", @review_count=2371, @review_average=4.4, @point_rate=1, @point_rate_start_time="", @point_rate_end_time="", @shop_name="かめあし商店", @shop_code="cameashi", @shop_url="http://www.rakuten.co.jp/cameashi/", @genre_id="304637">
# ...
# ]

simple_mappingを呼び出すと、

RakutenApi::ItemSearch::Model の配列で返却されます。

add_param について

楽天WebService上で表記されているgenreIdを指定する場合

以下は全て同じパラメータを指定していることになる。

params.add_param :genre_id, 0
params.add_param :genreId, 0
params.add_param 'genre_id', 0
params.add_param 'genreId', 0

ジャンル検索API 2

  • genre_id: 0での検索
client = RakutenApi::GenreSearch::Client.new do |params|
  params.add_param :genre_id, 0
end

response = client.request
p response.current
# => #<RakutenApi::GenreSearch::Model:0x007f956aba3fb8 @genre_id=0, @genre_name="", @genre_level=0>

p response.parents
# => []

p response.children
# => [
#  #<RakutenApi::GenreSearch::Model:0x007f956aba1ec0 @genre_id=211742, @genre_name="TV・オーディオ・カメラ", @genre_level=1>,
#  #<RakutenApi::GenreSearch::Model:0x007f956abcb360 @genre_id=100371, @genre_name="レディースファッション", @genre_level=1>,
#  ...
# ]
  • genre_id: 551172での(genreLevel: 2)検索
client = RakutenApi::GenreSearch::Client.new do |params|
  params.add_param :genre_id, 551172
end

response = client.request
p response.current
# => <RakutenApi::GenreSearch::Model:0x007fe1a39a28b0 @genre_id=551172, @genre_name="医療計測器", @genre_level=2>

p response.parents
# => [#<RakutenApi::GenreSearch::Model:0x007fe1a39a2540 @genre_id=551169, @genre_name="医薬品・コンタクト・介護", @genre_level=1>]

p response.children
# => [
#  #<RakutenApi::GenreSearch::Model:0x007fe1a39a21a8 @genre_id=208232, @genre_name="塩素計", @genre_level=3>,
#  #<RakutenApi::GenreSearch::Model:0x007fe1a39a1fc8 @genre_id=551173, @genre_name="その他", @genre_level=3>,
#  ...
# ]
#

楽天商品ランキングAPI2

  • 総合ランキング
response = RakutenApi::ItemRanking::Client.new.request
p response.title # => '【楽天市場】ランキング市場 【総合】'
p response.last_build_date.class # => DateTime
p response.page # => 1
p response.simple_mapping
# => [
#  #<RakutenApi::ItemRanking::Model:0x007fa7c2138230 @rank=1, @carrier=0, @item_name="...>,
#  #<RakutenApi::ItemRanking::Model:...>,
#  ...
# ]

次のページを取得するには next_rankingを実行する。

使い方の詳細はexamplesを確認のこと。

ranking_csv.rb

Dependencies

Development dependencies

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request