LoginSignup
29

More than 5 years have passed since last update.

posted at

updated at

Railsで楽天APIを使って商品検索をする(楽天APIの導入からRailsに組み込むまで)

Rakuten Web Service APIについて

Rakuten Web Service APIs.

商品検索APIについて

楽天商品検索API (version:2014-02-22)

token取得

API利用にtokenが必須
新規アプリ登録

Ruby関連

API形式

https://app.rakuten.co.jp/services/api/IchibaItem/Search/20140222?format=json&keyword=(エンコードしたキーワード)&applicationId=(アプリID/デベロッパーID)

最低限以下の2つがあれば商品検索できる
- アプリID
- 検索キーワード、ジャンルID、商品コード、ショップコードのどれか

本題のRailsでgem(rws-ruby-sdk)使用の例

Gemfile

rakuten-ws/rws-ruby-sdk

gem 'rakuten_web_service'

rakuten.rb

config/initializers/rakuten.rb

config/initializers/rakuten.rb
RakutenWebService.configuration do |c|
    c.application_id = 'アプリケーションID'
    c.affiliate_id = 'アフィリエイトID'#任意
end

(注)下のコメントも参考にしてください

controller

使いたいコントローラーにメソッド追加

def search_rakuten_api(keyword)
  items = RakutenWebService::Ichiba::Item.search(keyword: keyword)
  images_arr = []
  items.each do |item|

  # したい処理
  puts item['itemName'] #商品名
  puts item['itemPrice'] #価格
  puts item['itemUrl'] #商品のURL

  end
end

複数条件で検索したい場合は

items = RakutenWebService::Ichiba::Item.search(keyword: keyword, hits: 10, ....)

みたいにすればOK

まとめ

githubみたら

class RakutenController < ApplicationController
  def search
    RakutenWebService.configuration do |c|
      c.application_id = ENV["APPID"]
      c.affiliate_id = ENV["AFID"]
    end
    result = RakutenWebService::Ichiba::Item.search(keyword: params[:jan]).first
    render json: result
  end
end

みたいにcontrollerにすべて書いている人もいた
どっちがいいかはわからない。

参考サイト

rakuten-ws/rws-ruby-sdk
Ruby SDK

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
29