楽天APIを使ってアフィリエイトで稼ぐ、アフィリエイトリンクを作成する方法

楽天APIを使ってアフィリエイトで稼ぐ、アフィリエイトリンクを作成する方法

アフィリエイトリンクを作成する方法(導入編1) by PHP 

導入編では、楽天APIの簡単な説明をします。次回以降で、PHPを使用してデータを取得等の説明をします。

楽天APIとは

「楽天商品検索APIは、楽天市場の商品(共同購入商品・オークション商品(略)は除く)の情報を取得することが可能なAPIです。」
つまり、楽天APIを使えば、一度に大量のアフィリエイトリンクコードを作成することができます。
楽天APIを使用しない場合、通常は1件毎にアフィリエイトリンクを取得してブログに貼り付けていますが、1件毎なので手間がかかります。
もう少し効率を上げて、1回の検索で10件程度の商品リンクを取得できれば、非常に効率が上がります。
同じ商品が複数ヒットする場合もあれば、商品名が同じでジャンルが異なる商品が複数ヒットする場合もあります。想像している商品とは異なる商品がヒットする場合もあります。

利用条件:楽天会員(アプリID、アフィリエイトIDが必要なため)


(実際には改行せずに1行につなげてリクエストしてください。)
https://app.rakuten.co.jp/services/api/IchibaItem/Search/20140222?applicationId=[アプリID]
&keyword=%E7%A6%8F%E8%A2%8B
&sort=%2BitemPrice

PHPで使用するコマンドを使ってXML ドキュメントから文字列または数字を取り出していきます。
file_get_contents
simplexml_load_string

アフィリエイト収入を得られるか?

アフィリエイトで稼ぐには、まず、購買者が自分のブログやサイトを訪問し、楽天アフィリエイトリンクをクリックしてもらう必要があります。

そして、該当の商品もしくは他の楽天ショップの商品を購入してもらわなければなりません。アフィリエイトの収入が発生する条件はクリックをした商品である必要はありません。楽天ショップ内の商品(一部除く)であればどのお店の商品でも構わないことになります。
つまり、一般の現実のお店と同じように、訪問者が増えればクリック率も上がりますし、購入率も増加します。
如何にして訪問者が増える仕組みを作るか、訪問者が増える記事、コンテンツを掲載するかがアフィリエイトで利益を上げる鍵になります。
ただし、一石一鳥でうまく事が運ぶことはありません。どんなに良い記事を書いてもグーグルの検索ページに上位入賞しなければ誰も訪問してくれませんし、クリック率も上がりません。
常におもしろい内容を記事に掲載し、定期的に訪問してもらえるコンテンツの拡大、仕組みを作り上げる必要があります。
アクセス数、ページビューが増えることでクリック率が上昇していき、売上も上がっていきます。まずは、アクセス数、ページビューを増やしていきアフィリエイトで利益を上げるようにしましょう。
情報商材にはいろいろなネタやノウハウが記載されていますが、こういった情報商材には当たり外れが多いので、出来る限り自分で調べたり、考えたりして利益を上げるようにしたほうが良いと思います。情報商材の中には、ネットで調べればすぐに分かる程度の内容を載せたものやすでに古くなった情報を最新の情報であるかのごとく記載して販売しているものもあります。くれぐれもそんなゴミ商材を買わないようにしましょう。

https://webservice.rakuten.co.jp/document/楽天API一覧

(2)楽天APIを使ってアフィリエイトで稼ぐ、アフィリエイトリンクを作成する方法(2) by PHP 

楽天APIを使ってアフィリエイトリンク作成プログラムを作る

楽天サーバに接続してXMLデータを取得

楽天サーバに接続してXMLデータを取得するまでのPHPスクリプトを作成ます。
接続のURLに間違いがないかを確認するためのスクリプトになります。取得したデータを一覧したり、htmlファイルとして出力するところまでは実施しません。

スクリプト言語:PHP

・xml形式でデータを取得simplexml_load_string
楽天サーバーに接続可能か、データ取得ができるかチェックします。
$rec=file_get_contents($req);
$f_simpledata=simplexml_load_string($rec);

以下のコードはターミナルで実行できます。サーバにアップして、ブラウザからでも開くことはできること思います。

<?php
//楽天APIアフィリエイトリンク作成プログラム 2015年2月20日

//xml形式でデータを取得しよう



$rakuten_syohin_api='https://app.rakuten.co.jp/services/api/IchibaItem/Search/20140222?';
$appID='XXXアプリID(各自)';
$afID='XXXアフィリエイトID(各自)';
$format='format=xml';
$keyword='ワンピース フィギュア';//urlencodeが必要
$ngKeyword='中古';//NGKeyword 空白はエラーになる
$hit='hits=6';
$page='page=1';
$availability='availability=1';//販売可能
$req=$rakuten_syohin_api.$appID.'&'.$afID.'&'.$format.'&keyword='.urlencode(mb_convert_encoding($keyword, 'UTF-8', 'auto')).'&NGKeyword='.urlencode(mb_convert_encoding($ngKeyword, 'UTF-8', 'auto')).'&'.$hit.'&'.$page.'&'.$availability;

$rec=file_get_contents($req);
$f_simpledata=simplexml_load_string($rec);
if($f_simpledata){
	print "接続OK\n";
	print "hit件数(MAX6件)=".$f_simpledata->hits."\n";
	//print "Items:".count($f_simpledata->Items)."\n";
	print "Items->Item:アイテム数".count($f_simpledata->Items->Item)."\n";
	print "Items->Item->itemName[0]:".$f_simpledata->Items->Item[0]->itemName."\n";
}else{
	print "xml error";
}




?>

次のXMLはPHPで実行するためのものではなくて、単なる参考XMLの一部です。上記の検索で得られた結果とは無関係のものです。

<?php

/*
検索例
2015年2月20日

<?xml version="1.0" encoding="UTF-8"?>
<root>
  <count>4</count>
  <hits>4</hits>
  <page>1</page>
  <first>1</first>
  <last>4</last>
  <carrier>0</carrier>
  <pageCount>1</pageCount>
  <Items>
    <Item>
      <itemName>クリスタルガイザー ミネラルウォーター 500ml×48本(並行輸入品)【楽天24】【HLS_DU】■</itemName>
      <catchcopy>クリスタルガイザ
    (略)
*/

?>

(3)楽天APIを使ってアフィリエイトで稼ぐ、アフィリエイトリンクを作成する方法 by PHPスクリプト

第2回では、楽天サーバに接続してデータを取得するところまでのPHPでスクリプトを作成しました。
 今回は取得したデータを元にhtmlタグを使ってhtmlファイルとして出力するスクリプトを作成します。いわゆる静的なhtmlを出力します。このhtmlファイルにより多くの情報を付加してご利用のサーバ等にアップして楽天アフィリエイト収入を得ることが可能になります(タイトル、見出し等の変更はしていないので変更する必要があります。)。ただ、グーグルの検索エンジンに検索されるにはいろいろなSEO対策を施したりしてほかのサイトの同様のページに引けをとらない内容にする必要があります。

アフィリエイトリンクを挿入したhtmlファイルの作成、出力

第3回の作業内容
1.楽天サーバからデータを取得(第2回と同じ)

2.件数ごとにhtmltタグを付加

3.htmlファイルの出力(1ファイルのみで最大6件の商品コード)

今回は、1回の検索で最大6件の楽天アフィリエイトURLを含んだhtmlファイルを作成します。作成するのは、1検索で1ファイルの出力になります。なお、検索キーワードによっては検索数がゼロのこともあります。これは、商品自体がないときや在庫がない場合が考えられます。その場合は他のキーワードを入力して再度実行することになります。検索によって取得したデータ最大6件を表示させる程度のシンプルなhtmlファイルになります。そのため、SEO対策等の処理は行いません。メニュー等も作成しません。より多くの件数を取得したい場合やファイル数を増やしたい場合は、検索回数を増やしたり、取得データ数を上げることで、複数のファイルを出力する仕様に変更して多くのアフィリエイト用htmlファイルを作成することができるでしょう。

・注意点
連続して楽天サーバに接続する場合は、できるだけ間隔を空ける必要があります。これは楽天側のサーバの負荷を低減するためです。あまりにもサーバに負荷のかかる検索処理を行うと強制的に接続をブロックされたり、一定期間接続できなくなるかもしれませんので注意してください。

PHPスクリプトソース、htmlの構成

ひな形htmlのソース
ひな形のhtmlの中に置換用の文字列を入れておきます。今回は「start」になります。この文字列を楽天アフィリエイトURLの文字列と置換します。そして、
htmlファイルを出力します。

<!DOCTYPE html>
<html lang="ja">
 <head>
  <meta CHARSET="UTF-8"> 
 <meta name="robots" content="nofollow,noindex" />
  <meta name="keywords" content="HTML5">
  <meta name="description" content="HTML5の説明">
 <title>HTML5 Sample page</title>

<style type="text/css">
	ul.type1 li{
		float: left;
		width: 10em; /*1em = 1文字分の長さ*/
		list-style: none; 
		background-color: #ccc;
		margin: 2px;
		border: 1px #ffb366 solid;
	}
</style>


 </head>
 <body>
  <h1>H1 Sample page</h1>
  <h2>H2 Sample page</h2>
  
  <p>HTML5のタグの説明はブログにて行います
  </p>

start

  <!-- this is a comment -->
  
 </body>
</html>

PHPスクリプトソース

<?php
//楽天APIアフィリエイトリンク作成プログラム 2015年2月20日
//xml形式でデータを取得しよう

//2015年3月6日 
//htmlタグを入れよう

	global $rakuten_syohin_api;
	global $li,$ulEnd,$liEnd,$br,$kai__;
	global $an,$blaket,$anEnd,$imageTag,$imageBorder;
	
	 $ul	="<ul class=\"type1\">\n";//ダブルクオーテーションにはバックスラッシュをつける
	 $li	="<li>\n";
	 $ulEnd	="</ul>\n";
	 $liEnd	="</li>\n";
	 $br		="</br>\n";
	 $kai__	="\n";
	
	 $an		="<a href=";
	 $blaket	=">";
	 $anEnd	="</a>";
	
	 $imageTag	="<img src=";
	 $imageBorder=" border=0";
	
	
$rakuten_syohin_api='https://app.rakuten.co.jp/services/api/IchibaItem/Search/20140222?';
$appID='applicationId=各自のID';
$afID='各自のID';
$format='format=xml';
$keyword='ワンピース フィギュア';//urlencodeが必要
$ngKeyword='中古';//NGKeyword 空白はエラーになる
$hit='hits=6';
$page='page=1';
$availability='availability=1';//販売可能
$req=$rakuten_syohin_api.$appID.'&'.$afID.'&'.$format.'&keyword='.urlencode(mb_convert_encoding($keyword, 'UTF-8', 'auto')).'&NGKeyword='.urlencode(mb_convert_encoding($ngKeyword, 'UTF-8', 'auto')).'&'.$hit.'&'.$page.'&'.$availability;

print "実行中\n";
$rec=file_get_contents($req);
$f_simpledata=simplexml_load_string($rec);
if($f_simpledata){
	print "接続OK\n";
	print "hit件数(MAX6件)=".$f_simpledata->hits."\n";
	//print "Items:".count($f_simpledata->Items)."\n";
	print "Items->Item:アイテム数".count($f_simpledata->Items->Item)."\n";
	//print "Items->Item->itemName[0]:".$f_simpledata->Items->Item[0]->itemName."\n";
	
	//以下より2015年3月6日
	if (count($f_simpledata->Items->Item) == 0){
		print "検索数が0です。他のキーワードを入れてください。\n";
		return;
	}
	$htmlstr="";
	
	$htmlstr.=$ul;
	foreach($f_simpledata->Items->Item as $a){
		htmltag($a,$htmlstr);
	}
	$htmlstr.=$kai__.$ulEnd;
	
	//fileout
	//echo getcwd() ;で調べて/Users/maseda/DeskTop/text
	$path="/Users/maseda/DeskTop";
	$sampleTextFile=file_get_contents($path."/text/rakuten_test_sample01.html");
	if($sampleTextFile == "" ){
		print "ひな形ファイルが見つかりませんでした。\n";
		return;
	}
	
	//print $htmlstr;
	if($f=mb_ereg_replace("start",$htmlstr,$sampleTextFile)){
		//ファイル出力
		date_default_timezone_set('Asia/Tokyo');//http://php.net/manual/ja/function.date.php
	
		$today=date("Ymd_His");
		$c=file_put_contents($path.'/text/rakuten_output_'.$today.'.html',$f);
		if($c){
			print "ファイルを作成しました。\n";
		}else{
			print "ファイル出力に失敗しました。\n";
			return;
		}
	
	}else{
		print "該当の文字列がありません。置換に失敗しました。\n";
		return;
	}
	
	
}else{
	print "xml error, check";
	return;
}

//以下より2015年3月6日
function htmltag($a,&$mainStr){
	// startを置換します。rakuten_test_sample01.html

	global $li,$ulEnd,$liEnd,$br,$kai__;
	global $an,$blaket,$anEnd,$imageTag,$imageBorder;
	
	$outputStr	="";
	$name				=$a->itemName;
	$introduction		=$a->itemCaption;	//mb_convert_encoding($a->itemCaption ,"EUC-JP","UTF-8");
	$afurl				=$a->affiliateUrl;		
	$mediumimage		=$a->mediumImageUrls->imageUrl;//mediumImageUrls,smallImageUrls
	$shopname			=$a->shopName;
	$shopurl			=$a->shopUrl;		//need encode.
	$creditcard_flag	=$a->creditCardFlag;
	$availability		=$a->availability;	//availability 0:販売不可能 1:販売可能			
	
	if($availability  ==	1){
		$outputStr=$li.$an.$afurl.$blaket.$kai__.
					$imageTag.$mediumimage.$imageBorder.$blaket.
					$name.$anEnd.$kai__.$br;
		$outputStr.=$introduction.$kai__.$br.$kai__;
		$outputStr.=$shopname.$kai__;
		
		$outputStr.=$liEnd;
		
		$mainStr.=$outputStr;
		print "・".$name.$kai__;
	}else{
		print $name."売り切れみたい\n";
	}
	
}

?>

<?php



?>

実行後のターミナルの出力結果

$ php /Users/maseda/Desktop/text/rakutenAfNew_htmlmake03th.php 
実行中
接続OK
hit件数(MAX6件)=6
Items->Item:アイテム数6
・代引き/銀振のみ【ワンピース フィギュア】6月発売新作メガハウス  POP ワンピース しらほし 05P01Mar15
(略)
・「トラファルガー・ロー」 ONE PIECE 超ワンピーススタイリング 〜 MARINE FORD 〜 マリンフォード【ワンピース/フィギュア/アニメ/トラファルガー・ロー】バンダイ
ファイルを作成しました。

出力されたhtmlのソース

<!DOCTYPE html>
<html lang="ja">
 <head>
  <meta CHARSET="UTF-8"> 
 <meta name="robots" content="nofollow,noindex" />
  <meta name="keywords" content="HTML5">
  <meta name="description" content="HTML5の説明">
 <title>HTML5 Sample page</title>

<style type="text/css">
	ul.type1 li{
		float: left;
		width: 10em; /*1em = 1文字分の長さ*/
		list-style: none; 
		background-color: #ccc;
		margin: 2px;
		border: 1px #ffb366 solid;
	}
</style>


 </head>
 <body>
  <h1>H1 Sample page</h1>
  <h2>H2 Sample page</h2>
  
  <p>HTML5のタグの説明はブログにて行います
  </p>

<ul class="type1">
<li>
<a href=http://hb.afl.rakuten.co.jp/hgc/g00rc1q1.5dxgv5e0.g00rc1q1.5dxgx8b0/?pc=http%3A%2F%2Fitem.rakuten.co.jp%2Fforyou2011%2F10000320%2F&m=http%3A%2F%2Fm.rakuten.co.jp%2Fforyou2011%2Fi%2F10000320%2F>
<img src=http://thumbnail.image.rakuten.co.jp/@0_mall/foryou2011/cabinet/02740033/img58494438.jpg?_ex=128x128 border=0>代引き/銀振のみ【ワンピース フィギュア】6月発売新作メガハウス  POP ワンピース しらほし 05P01Mar15</a>
</br>
☆2012年6月発売予定【ご予約】  エクセレントモデル P.O.P しらほし姫 堂々の1位に選ばれました!残りわずか!急いで予約! 商品詳細 2012年6月発売予定。 メガ・ハウス 製品仕様 彩色済み完成品フィギュア 品薄商品につき 仕入れ価格が高騰しております。ご了承の程 ご注文お願いいたします。 キャンセルは不可です。 購入後必ずレビューを書いてください!  ★数量限定!他店完売!6月末発売予定 ご予約! ★【即納】ワンピース関連商品はこちらへ ワンピース フィギュア 6月末発売 しらほし姫 キャンセル予約分 ワンピース フィギュア 6月末発売 ベン・ベックマン キャンセル予約分 【ワンピース】 ラスト1点 メガハウス POP 白ひげ  エドワード・ユーゲート 【ワンピース】 ラスト1点 メガハウス POP ワンピース  ロロノア・ゾロ 【ご予約】ラスト1点  エクセレントモデル P.O.P DX ゲッコー・モリア 【ご予約】ラスト1点  エクセレントモデル P.O.P NEO-DX ペローナ  フィギュアーツZERO クロコダイル  即納 フィギュアーツZERO ボア・ハンコック&サロメ フィギュアーツZERO ペローナ 入手困難 大人気 ワンピース フィギュアーツZERO ゲッコー・モリア POP ジュエリー・ボニー 4月末予約 ラスト1点  ワンピース chibi-artsペローナ 4月末入荷予定分  ☆ワンピース フィギュア フィギュアアーツ ZERO ニコ・ロビンソン 新世界編ver  ☆ラスト1点  ワンピース フィギュアーツZERO ボア・ハンコック ワンピース フィギュアーツZERO ボア・ハンコック 魂ネイション2011開催記念商品 ☆ラスト1点 ワンピース フィギュアーツZERO ボア・ハンコック
</br>

セレクトショップ for you
</li>
<li>
<a href=http://hb.afl.rakuten.co.jp/hgc/g00r52x1.5dxgv138.g00r52x1.5dxgx404/?pc=http%3A%2F%2Fitem.rakuten.co.jp%2Ftoyz%2F10000900%2F&m=http%3A%2F%2Fm.rakuten.co.jp%2Ftoyz%2Fi%2F10004209%2F>
<img src=http://thumbnail.image.rakuten.co.jp/@0_mall/toyz/cabinet/img57980500.jpg?_ex=128x128 border=0>【エース】 ONE PIECE 組立式スーパーエフェクト能力者フィギュア VOL.4 ワンピース【ワンピース/フィギュア/エース】</a>
</br>
※「エース」の単品販売。 ワンピースに登場する能力者(悪魔の実を食べたもの)達のバトルシーンをクリアパーツを使って巧妙に再現したシリーズ第4弾! 商品仕様 全高:約10cm 新品未開封品
</br>

お宝館TOYZ
</li>
<li>
<a href=http://hb.afl.rakuten.co.jp/hgc/g00r52x1.5dxgv138.g00r52x1.5dxgx404/?pc=http%3A%2F%2Fitem.rakuten.co.jp%2Ftoyz%2F10001391%2F&m=http%3A%2F%2Fm.rakuten.co.jp%2Ftoyz%2Fi%2F10003753%2F>
<img src=http://thumbnail.image.rakuten.co.jp/@0_mall/toyz/cabinet/img60396252.jpg?_ex=128x128 border=0>【全3種セット】超ワンピーススタイリングEX(エクストラ) STRONG BROTHERS SPECIAL ストロングブラザーズスペシャル【ワンピース/ルフィ/エース/シャンクス/フィギュア】</a>
</br>
超ワンピーススタイリングの特別版2009年公開した大ヒット映画「ONE PIECE FILM STRONG WORLD」で登場したスーツ姿のルフィと、ストロングスーツスタイルのエース、シャンクスを新規立体化シャンクスのサングラスで隠れている目も丁寧に彩色するなど造形・彩色にこだわった商品です。また、それぞれの台座をつなげてディスプレイすることも可能です。※シャンクスのサングラスを外すことはできません。・モンキー・D・ルフィ ・ポートガス・D・エース・シャンクス ラインナップ数:3種類サイズ:約130-140mm(台座含む)素材:PVC・台座ABS■メーカー:バンダイ■分類:食玩・BOXフィギュア新品国内正規品(版権承諾証付)
</br>

お宝館TOYZ
</li>
<li>
<a href=http://hb.afl.rakuten.co.jp/hgc/g00pr6b1.5dxgv1f9.g00pr6b1.5dxgx28a/?pc=http%3A%2F%2Fitem.rakuten.co.jp%2Famiami%2Ffig-ipn-5088%2F&m=http%3A%2F%2Fm.rakuten.co.jp%2Famiami%2Fi%2F10353843%2F>
<img src=http://thumbnail.image.rakuten.co.jp/@0_mall/amiami/cabinet/images/2012/37/fig-ipn-5088.jpg?_ex=128x128 border=0>エクセレントモデル Portrait.Of.Pirates ワンピース“NEO-MAXIMUM” ユースタス・“キャプテン”キッド 完成品フィギュア[メガハウス]《発売済・在庫品》</a>
</br>
※画像は試作品を撮影したものです。実際の商品とは異なる場合があります。販売数量制限お一人様 3 ヶまで。(同一住所、あみあみ本店支店合わせての制限数です)発売日12年12月下旬メーカーメガハウス作品シリーズ名Portrait.Of.Pirates原作名ONE PIECEキャラクター名&#12518;&#12540;&#12473;&#12479;&#12473;&#12539;&#12461;&#12483;&#12489;原型製作石山裕記コピーライト(C) 尾田栄一郎/集英社・フジテレビ・東映アニメーション製品仕様彩色済み完成品フィギュア【スケール】 約 1/8(約 240 mm)【パッケージ】 ウィンドウ箱JANコード4535123713668登録コード_00458 _01298 _01080 t000011 c0002208 salei GNRMEG ネオマキシマム 詳細原型製作:石山裕記彩色:ピンポイントP.O.Pに、DX を超える大迫力シリーズ“NEO-MAXIMUM”が登場します。その記念すべき第一弾は、億越えルーキーの筆頭格“キャプテン”キッド。大迫力の造形と彩色で劇中のイメージそのままに立体再現します。2種類の表情に差し替え可能で、能力発動状態の右腕パーツは文字通りの“MAXIMUM”ボリューム。どの角度からでも見応え十分で、まさに決定版商品となっています。
</br>

あみあみ 楽天市場店
</li>
<li>
<a href=http://hb.afl.rakuten.co.jp/hgc/g00r52x1.5dxgv138.g00r52x1.5dxgx404/?pc=http%3A%2F%2Fitem.rakuten.co.jp%2Ftoyz%2F10001425%2F&m=http%3A%2F%2Fm.rakuten.co.jp%2Ftoyz%2Fi%2F10003801%2F>
<img src=http://thumbnail.image.rakuten.co.jp/@0_mall/toyz/cabinet/img58248742.jpg?_ex=128x128 border=0>【モンキー・D・ルフィ】 ONE PIECE 超ワンピーススタイリング AMBITIOUS MIGHT【モンキー・D・ルフィ/フィギュア/ワンピース】</a>
</br>
メーカー バンダイ 商品説明 ※こちらは「モンキー・D・ルフィ」の単品販売となります。 商品仕様 食玩全高:約11〜15cm新品未開封品国内正規品(版権承諾証付)
</br>

お宝館TOYZ
</li>
<li>
<a href=http://hb.afl.rakuten.co.jp/hgc/g00r52x1.5dxgv138.g00r52x1.5dxgx404/?pc=http%3A%2F%2Fitem.rakuten.co.jp%2Ftoyz%2F10001472%2F&m=http%3A%2F%2Fm.rakuten.co.jp%2Ftoyz%2Fi%2F10004211%2F>
<img src=http://thumbnail.image.rakuten.co.jp/@0_mall/toyz/cabinet/img58277368.jpg?_ex=128x128 border=0>「トラファルガー・ロー」 ONE PIECE 超ワンピーススタイリング 〜 MARINE FORD 〜 マリンフォード【ワンピース/フィギュア/アニメ/トラファルガー・ロー】バンダイ</a>
</br>
メーカー バンダイ 商品説明 ※こちらは「トラファルガー・ロー」の単品販売となります。 商品仕様 食玩全高:約14cm(頭頂部まで) 限定品!絶版品!入手困難品! 新品未開封品国内正規品
</br>

お宝館TOYZ
</li>

</ul>


  <!-- this is a comment -->
  
 </body>
</html>


作成したタグUL、LIタグを使用しました

出力結果の一部

(4)楽天商品ランキングAPIを使ってアフィリエイトで稼ぐ、アフィリエイトリンクを作成する方法 by PHPスクリプト

第3回では、商品検索APIを使って楽天サーバに接続してhtmlとして出力するPHPでスクリプトを作成しました。
 今回は、楽天APIのランキングAPIを使用します。商品検索は実際に商品名がわかっている場合に利用できます。でも売れ筋かどうかはわかりません。ランキングなら、売れ筋の商品、人気商品がわかることになります。

楽天商品ランキングAPI (version:2012-09-27)(外部サイト)

(動画予定)

いくつかの引数が異なりますが、基本的には同じ構成になります。
楽天商品ランキングAPIはジャンルID、genreIdを使用します。前回の商品検索では、キーワードを設定しましたが今回はこのジャンルIDに変わります。
 ジャンルIDとは、商品分類別のIDでお菓子のID、洋服のIDなど様々な商品のジャンル、分類ごとにIDが割り当てられています。このジャンルIDごとに商品の売上げランキングが集計されています。
 例えば、お菓子のチョコのランキングを知りたければ、チョコのジャンルIDを設定すれば、チョコのランキングデータ(商品情報等)を取得できます。
売れ筋の商品をブログやホームページに掲載することで、訪問者が興味を持ってそのリンクをクリックしてくれるかもしれません。
他にも世代別、性別を指定する事もできます。今回は、ジャンルIDのみでPHPスクリプトを作成しました。

ジャンルIDをどうやって知るのか?

rakutenのランキング市場トップへ移動します。
ジャンル一覧がありますので、そのジャンル一覧のジャンルのどれかにカーソルを合わせると、ブラウザウィンドウの下のところにリンクのURLがポップアップします(ブラウザの種類や設定によってはURLがポップアップしないかもしれません。その場合は、クリックしてページを移動し、移動したページのURLを見てみましょう)。
画像1

ジャンルID
例えばパソコン・周辺機器はhttp://ranking.rakuten.co.jp/daily/100026/のようになります。
ここでURLの文字列の終端側の数字がジャンルIDになります。
「100026」
この数字がパソコン・周辺機器のジャンルIDです。つまり、パソコン・周辺機器のランキングを取得したいときは、この「100026」を使用します。
ただし、「100026」を使ってパソコン・周辺機器を検索すると売れ筋ランキングはわかりますが、あまりにも商品の幅が広すぎてしまいます。その場合はより、ランキングの範囲を絞る必要があります。
その時は、先ほどのジャンルIDを調べた時と同様に、知りたいランキングのジャンルをチェックします。
ちなみに、より細分化したジャンルIDを調べて、ランキングデータを取得しようとしても売れていないこともありますので、データを取得できません。その場合は1つか2つ上の分類に戻って検索をする必要があります。
画像2
ランキング2

パラメータ
period=realtime
リアルタイムランキングを取得を設定します。
ランキングAPIでは、検索数(商品数)を指定できません。ランキングのページ(最大34品目)分の商品情報を取得します。

PHPスクリプトソース、htmlの構成

ひな形htmlのソース
ひな形のhtmlの中に置換用の文字列を入れておきます。今回も第三回と同じで「start」になります。この文字列を楽天アフィリエイトURLの文字列と置換します。そして、htmlファイルを出力します。

PHPスクリプトソース(第三回とほぼ同じで商品ランキングAPI及び必要なパラメータが異なるだけです)

こちらの記事もどうぞ