サンプル・プログラムの実行例
サンプル・プログラム
searchRakuten.php | サンプル・プログラム本体。 |
pahooRakuten.php | 楽天ウェブサービスに関わるクラス pahooRakuten。 使い方は「PHPで最寄りのネットができるホテルを検索する」などを参照。include_path が通ったディレクトリに配置すること。 |
バージョン | 更新日 | 内容 |
---|---|---|
3.1.1 | 2024/09/23 | 参考URL変更 |
3.1 | 2021/10/24 | PHP8対応,リファラ・チェック改良 |
3.0 | 2016/02/27 | pahooRakutenクラスに変更 |
2.01 | 2015/07/05 | SSLv3脆弱性対応 |
2.0 | 2014/03/29 | API version:2013-08-05 |
バージョン | 更新日 | 内容 |
---|---|---|
3.6.2 | 2023/07/09 | bug-fix |
3.6.1 | 2022/12/13 | PHP8.2対応 |
3.6 | 2022/02/05 | 楽天商品検索API (version:2017-07-06)に変更 |
3.5 | 2021/10/24 | PHP8対応 |
3.4 | 2020/05/24 | 楽天書籍API (version:2017-04-04)に変更 |
楽天商品検索API
楽天商品検索APIは、楽天市場で販売されている商品の情報を取得することが可能なAPIである。検索キーワード(商品名など)、販売店コード、カタログコードをキーワードにして書籍を検索することができる。
URL |
---|
https://app.rakuten.co.jp/services/api/IchibaItem/Search/20170706 |
フィールド名 | 要否 | 内 容 |
---|---|---|
applicationId | 必須 | 楽天ウェブサービスのアプリケーションID |
format | 任意 | 'xml'または'json' 【デフォルト】json |
callback | 任意 | コールバック関数名 JSONPとして出力する際のコールバック関数名 (UTF-8でURLエンコードした文字列) 英数字、「.(ドット)」、「_(アンダーバー)」、「[(中括弧)」、「](中括弧)」のいずれか1文字以上 |
elements | 任意 | 出力パラメーター指定 カンマ区切りで、必要な出力パラメータを指定した場合、 指定された出力パラメータのみを返却。省略時はALL。 |
formatVersion | 任意 | 2を指定すると、JSONの出力方法が改善する。省略時は1。 |
keyword | ★ | 検索キーワード UTF-8でURLエンコードした文字列 半角128以下 複数キーワードから検索したい場合は半角スペースで区切る。 |
shopCode | ★ | ショップコード ショップごとのURL(https://www.rakuten.co.jp/[xyz])におけるxyzのこと。 |
itemCode | ★ | 商品コード 商品検索APIや、楽天商品ランキングAPIや、お気に入りブックマーク取得APIの出力パラメータに含まれまれる「shop:1234」という形式の値。 |
genreId | ★ | ジャンルID 楽天市場におけるジャンルを特定するためのID ジャンル名、ジャンルの親子関係を調べたい場合は「楽天ジャンル検索API」を利用する。 |
tagId | 任意 | タグID 10タグIDまでカンマ(,)区切りで指定可能。 |
hits | 任意 | 1ページあたりの取得件数 1から30までの整数 【デフォルト】30 |
page | 任意 | 取得ページ 1から100までの整数 【デフォルト】1 |
sort | 任意 |
ソート +affiliateRate:アフィリエイト料率順(昇順) -affiliateRate:アフィリエイト料率順(降順) +reviewCount:レビュー件数順(昇順) -reviewCount:レビュー件数順(降順) +reviewAverage:レビュー平均順(昇順) -reviewAverage:レビュー平均順(降順) +itemPrice:価格順(昇順) -itemPrice:価格順(降順) +updateTimestamp:商品更新日時順(昇順) -updateTimestamp:商品更新日時順(降順) standard:楽天標準ソート順【省略時】 ※UTF-8でURLエンコードされている必要があります。 |
minPrice | 任意 | 最小価格 1以上999,999,999以下の整数 |
maxPrice | 任意 | 最大価格 1以上999,999,999以下の整数 maxPriceはminPriceより大きい必要がある |
availability | 任意 | 販売可能 0:すべての商品 1:販売可能な商品のみ【省略時】 |
field | 任意 | 検索フィールド 0:検索対象が広い(同じ検索キーワードでも多くの検索結果が得られる) 1:検索対象範囲が限定される(同じ検索キーワードでも少ない検索結果が得られる)【省略時】 |
carrier | 任意 | PC用の情報を返すのか、モバイル用の情報を返すのかを選択 PC: 0【省略時】 mobile: 1 |
imageFlag | 任意 | 商品画像有無フラグ 0 : すべての商品を検索対象とする【省略時】 1 : 商品画像ありの商品のみを検索対象とする |
orFlag | 任意 | OR検索フラグ 複数キーワードが設定された場合に、AND検索、OR検索のいずれかが選択可能。 0:AND検索【省略時】 1:OR検索 ※ただし、(A and B) or Cといった複雑な検索条件設定は指定不可 |
NGKeyword | 任意 | 除外キーワード 検索結果から除外したいキーワード UTF-8でURLエンコードした文字列形式については keyword と同様 |
purchaseType | 任意 | 購入種別 商品を購入方法別に検索する事が可能 0:通常購入【省略時】 1:定期購入(定期購入とは、お客様の欲しい商品が欲しいサイクルで買えるサービスです。) 2:頒布会購入(頒布会購入とは、ショップがセレクトした商品を、ショップが決めた回数でお届けするサービスです) |
shipOverseasFlag | 任意 | >海外配送フラグ 0 :すべての商品【省略時】 1 :海外配送可能な商品のみ |
shipOverseasArea | 任意 | 海外配送対象地域 配送可能地域での絞込みが可能 配送地域コードについては別途「海外配送対象地域コード一覧」を参照してください ※海外配送フラグで「1」が指定されたときのみ利用可能 省略時はALL。 |
asurakuFlag | 任意 | あす楽フラグ 0 :すべての商品【省略時】 1 :あす楽対応可能な商品のみ |
asurakuArea | 任意 | あす楽配送対象地域配送可能地域での絞込みが可能 配送地域コードについては別途「あす楽配送対象地域 コード一覧」を参照してください ※あす楽フラグで「1」が指定されたときのみ利用可能 |
pointRateFla | 任意 | ポイント倍付けフラグ 0 :すべての商品【省略時】 1 :ポイント倍付け商品のみ |
postageFlag | 任意 | 送料フラグ 0 :すべての商品【省略時】 1 :送料込み/送料無料の商品のみ |
giftFlag | 任意 | ギフト対応フラグ 0:全ての商品【省略時】 1:ギフト対応商品のみ |
hasReviewFlag | 任意 | レビューありフラグ 0:全ての商品【省略時】 1:レビューがある商品のみ |
maxAffiliateRate | 任意 | アフィリエイト料率最大制限値 1.0から99.9までの数値 例)5.0 →5%アフィリエイト料率以下の商品のみ 指定したアフィリエイト料率以上は表示しない 小数第1位まで指定可能 |
minAffiliateRate | 任意 | アフィリエイト料率最小制限値 1.0から99.9までの数値 例)5.0 →5%アフィリエイト料率以上の商品のみ 指定したアフィリエイト料率以下は表示しない 小数第1位まで指定可能 アフィリエイト料率最大制限値以下の値を指定してください。 |
hasMovieFlag | 任意 | 動画ありフラグ 0:全ての商品【省略時】 1:動画がある商品のみ(動画リンクを返却します) |
pamphletFlag | 任意 | 資料請求対応フラグ 0:全ての商品【省略時】 1:資料請求対応商品のみ |
appointDeliveryDateFlag | 任意 | 配送日指定対応フラグ 0:全ての商品【省略時】 1:配送日指定可能な商品のみ |
genreInformationFlag | 任意 | ジャンルごとの商品数取得フラグ 0 :ジャンルごとの商品数の情報を取得しない【省略時】 1 :ジャンルごとの商品数の情報を取得する |
tagInformationFlag | 任意 | タグごとの商品数取得フラグ 0 :タグごとの商品数の情報を取得しない【省略時】 1 :タグごとの商品数の情報を取得する ※ジャンルIDが指定されていない場合、0を指定した場合はタグごとの商品数は取得できない |
★検索キーワード、ジャンルID、商品コード、ショップコードのいずれかが指定されていることが必須。
エラー内容はHTTPステータスコードとレスポンスボディから判断する。
準備:pahooRakuten クラス
16: // 楽天ウェブサービス・クラス ===============================================
17: class pahooRakuten {
18: var $error; //エラー・フラグ
19: var $errmsg; //エラー・メッセージ
20: var $hits; //検索ヒット件数
21: var $webapi; //直前に呼び出したWebAPI URL
22:
23: //楽天ウェブサービス
24: //https://www.pahoo.org/e-soul/webtech/php06/php06-01-02.shtm#Rakuten 参照
25: var $APPLICATIONID = '*******************'; //アプリID
26: var $APPLICATION_SECRET = '****************'; //シークレット
27: var $AFFILIATEID = '*******************'; //アフィリエイトID
楽天トラベルのホテル検索、楽天市場の商品検索など、楽天ウェブサービスを利用するために、クラスファイル "pahooRakuten.php" を使用する。組み込み関数 require_once を使って読めるディレクトリに配置する。ディレクトリは、設定ファイル php.ini に記述されているオプション設定 include_path に設定しておく。
クラスについては「PHPでクラスを使ってテキストの読みやすさを調べる」を参照されたい。
楽天ウェブサービスには、アプリID や アフィリエイトID が必要で、その入手方法は「楽天ウェブサービス - WebAPIの登録方法」を参照されたい。
クラスについては「PHPでクラスを使ってテキストの読みやすさを調べる」を参照されたい。
楽天ウェブサービスには、アプリID や アフィリエイトID が必要で、その入手方法は「楽天ウェブサービス - WebAPIの登録方法」を参照されたい。
解説:WebAPIコール
WebAPIはhttpsプロトコルであるため、ユーザー関数 callWebAPI のように cURL 関数を用いて呼び出している。このあたりについては「PHPセキュリティ対策:SSL通信を行う」で解説している。
解説:応答データの扱い
応答データの要素が多いので、取得したい要素を $RakutenSearchItems にあらかじめ定義しておき、ユーザー関数 searchItems の中で付き合わせながら配列$items に格納していく。
参考サイト
- 楽天商品検索API:楽天市場
- PHPで楽天ブックスAPIを使って書籍検索:ぱふぅ家のホームページ
- WEB APIの使い方とは?挑戦したらすごく楽しい!:僕の私の備忘録
- 楽天商品検索APIでアフィリエイトサイト簡単作成ツールを作ってみる:逆引きGoogle Apps Script
(この項おわり)
今回は、その中から楽天市場で販売されている商品の検索ができる楽天商品検索API を利用し、商品名またはキーワードから商品情報を取り出すプログラムを作ってみることにする。
(2022年2月5日)楽天商品検索API (version:2017-07-06)に変更
(2021年10月24日)PHP8対応,リファラ・チェック改良など