楽天ウェブサービス(http://webservice.rakuten.co.jp/) のAPIクライアントです。
以下のAPIに対応しています。
- 楽天商品検索API2 (version:2012-07-23)
- 楽天ジャンル検索API2 (version:2012-07-23)
- 楽天商品ランキングAPI2 (version:2012-09-27)
- 1.9.3
- 2.0.0
- Rubinius 19mode
Add this line to your application's Gemfile:
gem 'rakuten_api'
And then execute:
$ bundle
Or install it yourself as:
$ gem install rakuten_api
どこでもいいので、以下を追加します。
Railsアプリケーション等の場合は、initializer等に登録してください。
RakutenApi.configure do |config|
config.application_id = "[applicationId]"
config.affiliate_id = "[affiliateId]"
end
- 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 の配列で返却されます。
楽天WebService上で表記されているgenreId
を指定する場合
以下は全て同じパラメータを指定していることになる。
params.add_param :genre_id, 0
params.add_param :genreId, 0
params.add_param 'genre_id', 0
params.add_param 'genreId', 0
- 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>,
# ...
# ]
#
- 総合ランキング
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を確認のこと。
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request