楽天ウェブサービスに入門する。
出力は「xml」と「json」が選べるらしいが、親しみのある「xml」をつかおう。
例によって、simplexmlで読もうとするが失敗。
うーん?わからん。
公式ページによると、SDKによるデータ取得がオススメらしい。
「SDK」とは、Software Development Kitの略で、その中の「Rakuten Web Service SDK for PHP」は、PHPアプリケーションから 楽天が提供しているAPIに、簡単にアクセスすることができる。(※PHP5.2.3以上)
つまりは、PHPライブラリの一種。
PHPのバージョンが心配だったが、PHP5.2.3以上。ミニバードやるじゃん。
見本通り書き呼び出し成功。
ただし、どうも楽天ウェブサービスでは大きい画像が取得できないらしい。
64×64の[smallImage]か128×128の[mediumImage]かの二択。悲しすぎる。
最後にブログパーツ化して、完成。
最終コード
<?php header("Content-type: application/x-javascript");//js $id = $_GET['id'];//JavaScriptで飛ばしてくる変数。 $number = $_GET['number']; $select = $_GET['select']; $key = $_GET['key']; require_once dirname(__FILE__).'/sdk/autoload.php';//sdkをリクエスト $client = new RakutenRws_Client(); $client->setApplicationId('XXXXXXXX'); $client->setAffiliateId($id); if(empty($id)){//もしIDが空なら、XXXXXXXX $client->setAffiliateId('XXXXXXXX'); } $response = $client->execute('ItemSearch', array( 'keyword' => $key, 'hits' => $number )); //var_dump($response); if ($response->isOk()) { // レスポンスを foreach でアクセスできます foreach ($response as $item) { $gazolink = "<a target='_blank' href=".$item['affiliateUrl']."><img src=".$item['mediumImageUrl']."></a>"; $titlelink = "<div class='aztitle'><a target='_blank' href=".$item['affiliateUrl'].">".$item['itemName']."</a></div>"; //▼//$selectで表示方法を分岐。 if($select == 'txt'){//テキストだけ $mix = "<div class='az'>".$titlelink."</div>"; }elseif($select == 'img'){//画像だけ $mix = "<div class='az'>".$gazolink."</div>"; }else{//全部 $mix = "<div class='az'>".$gazolink."<br>".$titlelink."</div>"; } //▲// $output = $output.$mix;//ループさせるための自己読み込み } } echo "document.write(\"$output\")"; ?>