楽天ウェブサービスに入門する。
出力は「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]かの二択。悲しすぎる。
最後にブログパーツ化して、完成。
最終コード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | <?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\")" ; ?> |