バリューコマースのウェブサービスを利用してみた
バリューコマースはヤフーやアマゾンも取り扱う大手のASPなので、
どんなジャンルのサイトであっても、
相応しい広告がゴロゴロしているので紹介しやすいのでは?
サクッとバリューコマースのウェブサービスを体感することができるサンプルコードを掲載しました。
ワードプレスの投稿欄なんかに貼り付けて実行することも出来ます。
ページャーも含めて動作させるにはワードプレス側のリライト機能を制御する必要がある。
<?php /**********************************************************************/ // バリューコマースWEBサービス $token = ""; // トークン /**********************************************************************/ /********************************************************************** // カテゴリー(参考) "computers" (コンピュータ) "electronics" (家電、AV機器) "music" (音楽、CD) "books" (本、コミック) "dvd" (DVD) "fooddrink" (フード、ドリンク) "fashion" (ファッション、アクセサリー) "beautys" (美容、健康) "toysgameshobbies" (おもちゃ、ホビー) "recreationoutdoor" (レジャー、アウトドア) "homeinterior" (生活、インテリア) "babymaternity" (ベビー、キッズ、マタニティ) "officesupplies" (ビジネス、ステーショナリー" ***********************************************************************/ echo '<div style="width:80%;margin:5% auto;">'; echo '<div style="margin:0; padding:0">'; ?> // 検索フォーム <div style="margin:0 0 2% 0;"> <form name="searchform" id="itemsearchform" method="get" action=""> <input type="text" name="keyword" id="itemkeyword" value="" /> <input type="submit" id="itemssubmit" value="検索" /> </form> </div> <?php $keyword = htmlspecialchars($_GET['keyword'], ENT_QUOTES); // URLエンコード $e_keyword = urlencode($keyword); $page = (empty($_GET['page'])) ? 1 : $_GET['page']; $baseurl = 'http://webservice.valuecommerce.ne.jp/productdb/search?'; $vcparam = array(); // キーワードをセット if ($e_keyword != "") { $vcparam['keyword'] = $e_keyword; } // リクエストパラメーターをセット(任意) $vcparam['token'] = $token; // トークン $vcparam['results_per_page'] = 10; // 1ページ毎の結果件数 $vcparam['sort_by'] = ''; // ソートの属性 $vcparam['sort_order'] = ''; // ソート順(昇順または降順) $vcparam['category'] = ''; // カテゴリー $vcparam['stock'] = ''; // 検索対象の在庫状況 $vcparam['ecCode'] = ''; // 検索対象のECサイトコード $vcparam['merchant'] = ''; // 検索対象のECサイトを指定 $vcparam['product_id'] = ''; // 商品識別コード $vcparam['sub_store'] = ''; // ECサイトのサブストアID $vcparam['adult'] = ''; // アダルト商品を検索結果に含めるかどうかの指定 $vcparam['price_max'] = ''; // 最大価格 $vcparam['price_min'] = ''; // 最小価格 $vcparam['rate_max'] = ''; // 最大報酬率 $vcparam['rate_min'] = ''; // 最小報酬率 $vcparam['fixed_max'] = ''; // 最大定額報酬料 $vcparam['fixed_min'] = ''; // 最小定額報酬料 $vcparam['fee_max'] = ''; // 最大報酬額 $vcparam['fee_min'] = ''; // 最小報酬額 $vcparam['page'] = $page; // 表示する検索結果のページ番号 $vcparam['format'] = 'json'; // 検索結果のフォーマット // 各パラメーターデータを'&'でつないでいく foreach ($vcparam as $vckey => $vcvalue) { $pala .= '&'.$vckey.'='.$vcvalue; } $vcurl = $baseurl.$pala; // レスポンスデータを取得 $vc_json = @file_get_contents($vcurl, true); // デコード $Items = json_decode($vc_json); $ItemArray = $Items->items; // ステータスを取得 $status = $Items->status; // 商品数を取得 $resultCount = $Items->resultCount; // 総ページ数を取得 $pageCount = $Items->pageCount; // レスポンス商品数が100000を超えるようなら100000に制限 if($resultCount > 100000){ $resultCount = 100000; } // 総ページ数が10000を超えるようなら10000に制限 if($pageCount > 10000){ $pageCount = 10000; } // 次ページ、前ページをセット $nextpage = $page+1; $prevpage = $page-1; // レスポンス表示部分 // ステータスがOKなら商品データを展開 if( $status == 'OK' ){ foreach ( $ItemArray as $item ) { echo '<div style="width:154px;float:left;"><a href="'.$item->link.'" rel="nofollow" target="_blank"><img src="'.$item->imageLarge->url.'" alt="" />'.$item->pvImg.'</a></div>'; echo '<div style="font-weight:bold;margin-left:155px;"><a href="'.$item->link.'" rel="nofollow" target="_blank">'.$item->title.$item->pvImg.'</a></div>'; echo '<div style="color:#ff0000; font-weight:bold;margin-left:155px;">価格 '.number_format((int)$item->price).' 円</div>'; echo '<div style="margin-left:155px;">'.mb_strimwidth($item->description, 0, 380, '...', 'UTF-8').'</div>'; echo '<div style="clear:both; visibility:hidden; width:100%; height:10px;">クリア</div>'; echo '<hr style="width:100%;border:1px dotted #bbb;" />'; } // foreach end } if(isset($item)){ echo "<span>全 ".number_format($resultCount)." 数</span>"; } // ページャー echo '<div>'; $nextpage= '2'; // $url_a ="<a style='background-color: #ffffff; color: #ff0000; margin: 0; padding: 0.2em 0.5em; border: solid 1px; text-decoration: none;' href=\"?keyword=$e_keyword&page="; $url_b ="\""; $html_Page_Link = Page_Link($pageCount,$page,$nextpage,$url_a,$url_b); echo $html_Page_Link; function Page_Link($pageCount,$page,$nextpage,$url_a,$url_b){ $html = ""; if($pageCount < 1) return $html; if($page > 1) $html .= $url_a.($page-1).$url_b.' style="background-color: #ffffff; margin: 0; padding: 0.2em 0.5em; border: solid 1px; text-decoration: none;"'.">«</a>"; $prevpage = $page - $nextpage; while ($prevpage < $page) { $prevpage++; if($prevpage > 1) $html .= $url_a.($prevpage-1).$url_b.">".($prevpage-1)."</a>"; } $html .= '<span style=" background-color: #ff0000; color: #ffffff; margin: 0; padding: 0.2em 0.5em; border: solid 1px #ff0000; text-decoration: none;">'.$page.'</span>'; if($page < $pageCount){ $pageCount = $pageCount - $page; if($pageCount > $nextpage) $pageCount=$nextpage; $plus=0; while ($plus < $pageCount) { $nextpage=$page+$plus+1; $html .= $url_a.$nextpage.$url_b.">".$nextpage."</a>"; $plus++; } $html .= $url_a.($page+1).$url_b.' style="background-color: #ffffff; color: #ff0000; margin: 0; padding: 0.2em 0.4em; border: solid 1px; text-decoration: none;"'.">»</a>"; } return $html; } echo '</div>'; echo '</div>'; echo '</div>'; ?>