000000 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

楽天ウェブサービスセンターブログ

楽天ウェブサービスセンターブログ

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

PR

Keyword Search

▼キーワード検索

Category

Calendar

Archives

2025.06
2025.05
2025.04
2025.03
2025.02

Freepage List

2007.03.12
XML

前回では商品検索のHTMLフォームを表示させました。
今度はこのフォームに実際にキーワードと価格を入力して
「商品検索ボタン」を押してみます。

商品検索結果一覧が表示されます。

今回は入力された内容が
楽天商品検索APIにどういった形で投げられているのかをみていきます

■商品検索APIへのURL生成

サンプルコード全文はこちら


   1 <?php
    2 //
    3 // 楽天商品検索API の利用サンプルコード (PHP)
    4 // ---------------------------------------------------------------
    5 // 以下を変更してPHP4/5が動作する公開領域におくだけでOK
    6 // 詳細な仕様は以下を参照
    7 // - 楽天ウェブサービス- http://webservice.rakuten.co.jp/
    8 //
    9 // UTF-8で保存すること
   10 /* ---------------- 以下、変更部分 ------------------------------ */
   11
   12 // 自分のディベロッパーID
   13
   14 $DEVELOPER_ID = "自分のディベロッパーID";
   15
   16 //自分のアフィリエイトID
   17
   18 $AFFILIATE_ID = "自分のディベロッパーID";
   19
   20 /* ---------------- 以上、変更部分 ------------------------------ */



14行目ですが自分で取得したディベロッパIDを入れるようにしてください。
デベロッパーIDの取得(楽天会員登録もこちらから)

18行目ですが自分で取得したアフィリエイトIDを入れるようにしてください。


   
   22 //--------- API毎の固定値
   23 // API名
   24 $API_NAME       = "楽天商品検索API";
   25
   26 // APIのURL
   27 $API_BASE_URL   = "http://api.rakuten.co.jp/rws/1.3/rest";
   28
   29 //オペレーション名
   30 $OPERATION      = "ItemSearch";
   31
   32 //バージョン
   33 $API_VERSION    = "2007-02-14";
   34
   35 //--------- リクエストパラメタの取得とAPIへのリクエストURL生成
   36



24行目は特に変更の必要はありません。
26行目ですが、楽天商品検索APIへのリクエストURLになります。
楽天商品検索API/オンラインドキュメントのリクエストURLの仕様を確認するようにしてください。

30行目ですが変更の必要はありません。
32行目ですが、現行のバージョンは'2007-02-14'となっています。


   37 // リクエストURL生成
   38 $api_url = sprintf("%s?developerId=%s&affiliateId=%s&operation=%s", $API_BASE_URL,$DEVELOPER_ID,$AFFILIATE_ID,$OPERATION);
   39


38行目で、楽天商品検索APIへのリクエストURLを生成しています。
PHPのsprint関数は文字列のフォーマット関数です。
商品検索APIの共通パラメタである、1.ディベロッパID、2.アフィリエイトID、3.操作のパラメタを持ったURLを生成しています。


この時点で生成されたURLは以下のようになります。

  http://api.rakuten.co.jp/rws/1.3/rest?
  developerId=[YOUR_developerID]
  affiliateId=[YOUR_affiliateID]
  &operation=ItemSearch


   40 //APIへのパラメタの連想配列
   41 $api_params          = array(
   42     "keyword"        => "",
   43     "version"        => $API_VERSION,
   44     "shopCode"       => "",
   45     "genreId"        => "",
   46     "catalogCode"    => "",
   47     "hits"           => "",
   48     "page"           => "",
   49     "sort"           => "",
   50     "minPrice"       => "",
   51     "maxPrice"       => "",
   52     "availability"   => "",
   53     "field"          => "",
   54     "carrier"        => "",
   55     "imageFlag"      => ""
   56 );
   57



41行目~56行目ですが、楽天商品検索APIに投げることができる(有効な)
サービス固有パラメタの連想配列になります。
連想配列とは"キー"とそれに紐付く"値"がセットになった配列のことをいいます。

APIバージョン(version)を初期値としてしています。

各パラメタの仕様は楽天商品検索API/オンラインドキュメントを確認するようにしてください。


   58 // リクエストパラメタ取得
   59 reset($api_params);
   60 while(list ($key, $val) = each($api_params) ){
   61     if(isset($_REQUEST[$key]) && $_REQUEST[$key] != ""){
   62         // リクエストパラメタにあれば、APIへのURLに追加
   63         $api_url = sprintf("%s&%s=%s",$api_url, $key, urlencode($_REQUEST[$key]));
   64         $api_params[$key] = $_REQUEST[$key];
   65     }else if(isset($api_params[$key]) && $api_params[$key] != ""){
   66         // パラメタにあれば、APIへのURLに追加
   67         $api_url = sprintf("%s&%s=%s",$api_url, $key, urlencode($api_params[$key]));
   68     }
   69 }



59行目で配列の初期化を実施しています。
60行目から、楽天商品検索APIの各固有パラメタについて、処理を行います。
61行目で固有パラメタについて、フォームからの値($_REQUEST[パラメタ名])があれば、
63行目で商品検索APIへのリクエストURLに追加しています。

APIに渡すパラメタの値はurlencode関数を使って
エンコードした値を使うようにしてください。

$_REQUESTはリクエストの内容(フォームからGET,POSTの両方のメソッドで渡ってくる)を取得するPHPのスーパーグローバル変数です。

上記で楽天商品検索APIからのURL生成は終了です。

こちらで検索キーワードを「チーズケーキ」上限価格を3000円とした場合の
楽天商品検索APIへのリクエストURLは以下のように生成されます。

  http://api.rakuten.co.jp/rws/1.3/rest?
  developerId=[ディベロッパID]
  &affiliateId=[アフィリエイトID]
  &operation=ItemSearch
  &keyword=%E3%83%81%E3%83%BC%E3%82%BA%E3%82%B1%E3%83%BC%E3%82%AD
  &version=2007-02-14
  &maxPrice=3000

次回では上記で生成したURLを実際に楽天商品検索APIになげてみます!






お気に入りの記事を「いいね!」で応援しよう

Last updated  2007.03.12 11:04:46
[サンプルソース紹介] カテゴリの最新記事



© Rakuten Group, Inc.
X