楽天検索API用PHP解説(1)

楽天市場の商品検索APIから情報を取得するためのサンプルPHPプログラム(func_rakuten.php)について解説する。

 

このプログラムは私個人で改造して使っているモノなので、実際そのまま利用することができるハズだが、動かなくても責任は持たない使い方としては、このプログラムを呼び出して、引数を渡せば、$list_riという配列を返してくれると言う仕組みになっている。

 

呼び出し側の記述としては、//コンテンツ作成 楽天商品検索require_once('./func_rakuten.php');
$list_ri = rakutenxml($keywords,$minP,$maxP,$genreId,$sort,$shipping,$max_num);
という感じで、いくつかの引数を指定して呼び出せばいい。

 

では、何をやっているのかを解説することにする。

 

function rakutenxml($keywords,$minP,$maxP,$genreId,$sort,$shipping,$max_num){ここはまず、ユーザー関数の定義と引数(ひきすう)の宣言だ。

 

関数rakutenxmlを{}内で定義すると言う形になる。

 

引数の$keywords,$minP,$maxP,$genreId,$sort,$shipping,$max_numについては後述。

 

set_time_limit(90);
set_time_limit関数とは、実行時間の最大値を制限する関数だ。

 

ただ普通は30秒で制限されている処理時間を、90秒まで長くするためにこれを書いている。

 

ただしサーバーのPHPがセーフモードで動いている場合は無効な記述となる。

 

sleep(1);
sleep関数は、処理を遅らせるための関数で、ここでは1秒スリープしている。

 

わざわざここで、1秒ほど処理を遅らせている理由は、楽天WEBサービスのRESTリクエストの回数制限が1秒間に1回未満となっているからだWEBサービス側としては、一人のユーザーからの膨大なリクエストを受け付けると、他のユーザーからのリクエストに応えきれなくなるので、制限をしている。




 

このPHPプログラムは、連続して商品情報のリクエストを出すことを前提に作ったので、リクエストを出す前に1秒間処理を停止して、リクエストの間隔をあけるようにしている。

 

// ---------------------------------------------------------------// 楽天商品検索API用コード (PHP)楽天関数// UTF-8で保存// ---------------- 以下、設定部分 ------------------------------ //$DEVELOPER_ID = "★楽天WEBサービスのデベロッパーID★";
$AFFILIATE_ID = "★楽天市場・アフィリエイトID★";
ここは、IDを設定する部分だ。

 

$API_NAME = "楽天商品検索API";
// API名$API_BASE_URL = "http://api.rakuten.co.jp/rws/3.0/rest";
$OPERATION = "ItemSearch";
$API_VERSION = "2010-08-05";
楽天のWEBサービスの仕様では、バージョン情報を日付で管理している。

 

新しく機能を追加した場合、この日付の部分を変えて対応する。

 

超メジャーなバージョンアップがある場合は「3.0」のところが変わる。

 

多分次は結構先だと思われるが「4.0」になるんだろう。

 

// ---------------- 設定部分おわり ------------------------------ ////データ補完作業if($minP == ""){$minP = "0";}
if($maxP == ""){$maxP = "5000000";}
if($genreId == ""){$genreId = "0";}
if($sort == ""){$sort = "standard";}
if($keywords == null){$keywords = 'わけあり';}
if($max_num == null){$max_num = 12;}
//検索商品数(最大30)
この部分は引数が空だった場合に、代替データを設定する部分だ。

 

この関数では、$keywords (検索キーワード)$minP   (最低価格)$maxP   (最大価格)$genreId  (ジャンルコード)$sort   (ソート順の指定)$shipping (送料無料指定) $max_num  (検索結果数の上限)と言う風に変数を割り当ていているので、引数が全て空だった場合は「\0円から\500万円までの訳あり商品を、オールジャンルで、標準のソート順で、12コ取得する」と言う指定になる。

 

キーワードなどの検索条件が空の場合も、何か表示しておいた方がアフィリサイトとしてはいいだろう。

広告


このエントリーをはてなブックマークに追加



売れてます

★稼げるアフィリエイター専用SEO分析ツール「COMPASS」

大幅バージョンアップ完了!アフィリサイト作成システムSIRIUS

★SEOに強い戦略的テンプレート「賢威7」

アフィリエイト教材 最新人気ランキング