プロフィール
大きなわ沖縄
大きなわ沖縄
QRコード
QRCODE
てぃーだブログ › 1日3分ブログ&HP簡単講座 › PHP › phpでの各種API利用方法(リンクシェアのAPI編)
「phpでの各種API利用方法(リンクシェアのAPI編)」についてfacebookへの書き込み

2011年03月13日

phpでの各種API利用方法(リンクシェアのAPI編)

php初心者の私でも利用できるレベルのAPIの活用方法です。

私のような初心者レベルでは、APIを利用したサイト作りなど行う場合、難しい処理だと、更新作業に時間がかかりすぎてしまって、逆に面倒なものになってしまいます。

なので、簡単なphpの処理だけで出来る方法を考えてみました。

今回は、大手アフィリエイトサイトのリンクシェアで考察してみようと思います。

まず、簡単にAPIを利用するための基本概念をして
1/APIからXML形式で商品のデータを読み込む
2/それを自分のサイトにあうように加工する
この2つになりますが、この処理をできるだけ簡単に行うことになります。

リンクシェアのサイトの中にも、APIの利用方法や例がありますので詳しくはそちらをご覧下さい。

ここでは、マニュアルやサンプルに書かれている難しい処理ではなく、簡単に処理することが目的です。

簡単に行うためのキーになるのが
simplexml_load_file
というXMLのデータを読み込むための処理になります。
これ以外にも読み込む方法はありますが、初心者にはあとの処理が難しくなりますので、simplexml_load_fileを使った処理もしくはsimplexml_load_fileで処理できるようにすることを考えるのがAPIをうまく活用するための近道になると思います。

簡単なphpのコードを記載しておこうと思います。

<コード(リンクシェア利用の場合)>
$mid = "提携済みのショップID";
$keyword = "キーワード";
$primary = "大カテゴリ";
$secondary = "小カテゴリ";
$mytoken = "リンシェアのAPIを利用するためのマイトークン";

$fileName = ("http://feed.linksynergy.com/productsearch/rest?token=".$mytoken."&keyword=".urlencode($keyword)."&mid=".$mid."&primary=".urlencode($primary)."&secondary=".urlencode($secondary)."&max=100");

$primary = str_replace(" ", "", $primary);
$secondary = str_replace(" ", "", $secondary);

$xmlpagecount = simplexml_load_file($fileName);
$dbcount1 = $xmlpagecount->TotalMatches;
$dbcount2 = $xmlpagecount->TotalPages;

for($page = 1;$page < sizeof($dbcount2)+1;$page++){
$fileName1 = ($fileName."&pagenumber=".$page);

$xml = simplexml_load_file($fileName1);

$db = $xml->item;
foreach($xml->item as $db){
$db2 = $db->mid;
$db3 = $db->merchantname;
$db4 = $db->createdon;
$db5 = $db->sku;
$db6 = $db->productname;
$db7 = $db->category;
$db8 = $db7->primary;
$db9 = $db7->secondary;
$db8 = str_replace(" ", "", $db8);
$db9 = str_replace(" ", "", $db9);
$db10 = $db->price;
$db11 = $db->upccode;
$db12 = $db->description;
$db13 = $db12->short;
$db14 = $db12->long;
$db15 = $db->keywords;
$db16 = $db->linkurl;
$db17 = $db->imageurl;
if($toroku_day < $db4 && $db8 == $primary && $db9 == $secondary ){
echo("<img src='");
echo($db17);
echo("' alt='' width='100px' height='100px' />");;
echo($db6);
echo("【ポイント】".$db13);
echo("Price:".$db10."円");
echo("<a href='");
ecoh($db16);
echo("' target='_blank'>");
echo(">>【商品の詳細】");
echo("</a>");
echo("\n");
}
}
}

これは、サンプルのAPIやマニュアルから加工したものですが、このままだと表示速度が非常に遅いです。
そこで一部さらに加工することで、若干読み込み速度が早くなります。

//この部分を修正すると早くなる
$db = $xml->item;
foreach($xml->item as $db){
$db4 = $db->createdon;
$db7 = $db->category;
$db8 = $db7->primary;
$db9 = $db7->secondary;
$db8 = str_replace(" ", "", $db8);
$db9 = str_replace(" ", "", $db9);
if($toroku_day < $db4 && $db8 == $primary && $db9 == $secondary ){
$db2 = $db->mid;
$db3 = $db->merchantname;
$db5 = $db->sku;
$db6 = $db->productname;
$db10 = $db->price;
$db11 = $db->upccode;
$db12 = $db->description;
$db13 = $db12->short;
$db14 = $db12->long;
$db15 = $db->keywords;
$db16 = $db->linkurl;
$db17 = $db->imageurl;
//ここまで修正、以下は同様


これで表示されない場合は、キーワードやカテゴリなどの変更が必要です。
マッチする商品がないということ!

リンクシェアのAPIを利用している方は、わかるかとは思いますが、これだけでは在庫切れを起こしているものがわかりません。
また、APIのデータに在庫切れを判別する仕組みがありません。

次回は、簡単な在庫の判定を書こうと思います。



同じカテゴリー(PHP)の記事
第1回PHPの基本構造
第1回PHPの基本構造(2010-11-22 13:19)


 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。