2017年10月20日
  • 自社保有メディアのサイト運営によるインターネット広告事業・WordPressによるサイト制作事業・コワーキングスペース・シェアオフィス・貸会議室の運営事業を行っています。

リンクシェアクロスオーバーサーチAPI(商品検索API)のWordPressテーマへのサンプルソースコード

とりあえずのサンプルソースコードです。コメントアウト部分(説明部分)は、リンクシェアさんのパラメータの説明などです。
この講座のスライド資料や動画は、
リンクシェアのWebAPI(クロスオーバーサーチ)を題材に、WordPressマネタイズセミナーを行いました。
に掲載しています。

<?php
/* ----------------------------------------------------------------------
 * リンクシェアクロスオーバーサーチAPI(商品検索API)。
 * トークンが必要。
 * http://www.linkshare.ne.jp/service/crossover/
 * ココから。
 */
?>

<?php
/*
パラメータ一覧

トークン:token
トークンは、クロスオーバーサーチを利用する際の認証情報です。この情報によりサービス利用が可能
なアフィリエイトであることを識別します。トークンは、最長64 バイトの暗号化された文字列で、アフィリエイト管理画面から取得します。
※このパラメータは必須項目です。

キーワード:keyword / exact / one
このパラメータは、検索時の文字列になります。複数の文字列を指定することが可能です。
その際はキーワードはダブルクォーテーションで括り、キーワードの間を半角スペースで区切ります。
リクエストする時は、UTF-8 でURL エンコードします。
ご利用頂けない文字 , & = ? {} \ () [] - ; ~ | $ ! > * %
キーワードタイプは以下の3種です。
※このパラメータは必須で、3種のうちいずれか1つを指定する必要があります。
・keyword
全て含む(すべてのキーワードを含むデータを返す)
凡例:”DVD Player”を指定したとき
DVD と Player を含むデータを返す
・exact
完全一致(指定したキーワードと完全一致するデータを返す)
凡例:”DVD Player”を指定したとき
DVD Player というフレーズを含むデータを返す
・one
いずれかを含む(指定したキーワードのいずれかを含むデータを返す)
凡例:”DVD Player”を指定したとき
DVD かPlayer のいずれかを含むデータを返す

除外キーワード: none
このパラメータは、検索時の除外キーワードを指定します。複数の文字列を指定することが可能です。
その際、キーワードはダブルクォーテーションで括り、キーワードの間を半角スペースで区切ります。
リクエストする時は、UTF-8 でURL エンコードします。
ご利用頂けない文字 , & = ? {} \ () [] - ; ~ | $ ! > * %
※このパラメータはキーワード(keword / exact / one)と合わせて利用します。必須項目ではありません。

参加企業指定:mid
このパラメータは、検索対象の参加企業を指定する場合にセットします。
mid に指定するID はリンクシェアが参加企業を管理するユニークな番号です。
アフィリエイト管理画面または参加企業リスト取得サービス(詳細は「5 参加企業リスト取得サービス」を参照)を利用して取得します。
一度に複数のmid を指定することはできません。
またアフィリエイト提携をしていない参加企業、商品情報を提供していない参加企業、無効なID を指定した場合、エラーになります。
※このパラメータは、必須ではありません。

カテゴリ:cat
このパラメータは主カテゴリを指定する場合にセットします。カテゴリは参加企業毎に異なります。

結果取得件数:max
検索結果は、デフォルトで20 件まで受信しますが、
このオプションを指定することで1回の検索でデフォルト以外の件数で結果を受信できるようになります。
(0~100 を指定出来ます)
max=0 を指定した場合、検索実行した際の総件数のみ取得します。
※このパラメータは、必須ではありません。

ページ番号:pagenumber
このパラメータは、検索結果のヒット件数が結果取得件数を超えた為、最初に取得した件数を超えた結果を取得するような場合に指定します。
結果取得件数を変更して一括で取得することも可能ですが、
100 件を超えるヒット件数の場合は、このパラメータを利用して残りの検索結果を取得することが可能です。
例えば、結果取得件数を100で指定して検索した時のヒット件数が100 件を超えて230 件であった場合、残りの130件を取得したい場合に指定します。
但し、検索結果の最大取得件数は4000件を限度としているため、結果取得件数の最大値100 を指定しても
ページ番号を指定して取得するのは40ページまでに限定されます。
検索ヒット件数と結果取得件数の組合せで無効なページを指定した場合、エラーになります。
未指定の場合(デフォルト)1となります。
※このパラメータは、必須ではありません。

ソート:sort
このパラメータは、検索結果を以下のフィールドで昇順および降順にソートする際に利用します。
このパラメータは複数指定することができます。その際は先に指定されたフィールドから順にソートが行われます。
※このパラメータは、必須ではありません。利用の際にはsorttype を必ず指定してください。
ソート対象 値
参考価格 retailprice
商品名 productname
主カテゴリ categoryname
MID(参加企業の識別ID) mid

ソートタイプ:sorttype
このパラメータは、上記のsort パラメータとセットで利用します。
昇順ソートの場合はasc、降順ソートの場合はdsc を指定します。
※このパラメータはsort パラメータを指定した場合必須です。

商品検索インターフェース・サンプル
上記パラメータを使ってアクセスする際のURL は以下のようになります。

■インターフェース・サンプル1
特定の参加企業の特定カテゴリで結果取得件数を10 件に指定し、参考価格の価格を昇順ソート、商品
名を降順ソートする場合
token=2q34asdr35shgrtyw42473457dsfgsdw324d32
keyword="DVD Player" -(UTF-8 でURL エンコード)→ %22DVD+Player%22
mid=2325
cat="AV機器" -(UTF-8 でURL エンコード)→ %ef%bc%a1%ef%bc%b6%e6%a9%9f%e5%99%a8
max=10
sort=retailprice
sorttype=asc
sort=productname
sorttype=dsc
http://productsearch.linksynergy.com/productsearch?token=2q34asdr35shgrtyw42473457dsfgsdw324d32&keyword=%22DVD+Player%22&mid=2325&cat=%ef%bc%a1%ef%bc%b6%e6%a9%9f%e5%99%a8&max=10&sort=retailprice&sorttype=asc&sort=productname&sorttype=dsc

■インターフェース・サンプル2
特定の参加企業を指定しないでページ当たり30 件を取得し、その3 ページ目の検索結果を取得する
場合
token=2q34asdr35shgrtyw42473457dsfgsdw324d32
keyword="DVD Player" -(UTF-8 でURL エンコード)→ %22DVD+Player%22
max=30
pagenumber=3
http://productsearch.linksynergy.com/productsearch?token=2q34asdr35shgrtyw42473457dsfgsdw324d32&keyword=%22DVD+Player%22&max=30&pagenumber=3
最終更新日:2011-05-26
LinkShare Japan K.K. All Rights Reserved.

■インターフェース・サンプル3
キーワードの有効性を確認するため検索実行時のヒット件数のみ取得したい場合
token=2q34asdr35shgrtyw42473457dsfgsdw324d32
keyword="DVD Player" -(UTF-8 でURL エンコード)→ %22DVD+Player%22
max=0
http://productsearch.linksynergy.com/productsearch?token=2q34asdr35shgrtyw42473457dsfgsdw324d32&keyword=%22DVD+Player%22&max=0

■インターフェース・サンプル4
"DVD Player"の完全一致キーワードとして検索する場合
token=2q34asdr35shgrtyw42473457dsfgsdw324d32
exact="DVD Player" -(UTF-8 でURL エンコード)→ %22DVD+Player%22
http://productsearch.linksynergy.com/productsearch?token=2q34asdr35shgrtyw42473457dsfgsdw324d32&exact=%22DVD+Player%22

■インターフェース・サンプル5
"DVD Player"のキーワードのうち、”DVD”又は”Player"のいずれか1 つをキーワードとして検索する場合
token=2q34asdr35shgrtyw42473457dsfgsdw324d32
one="DVD Player" -(UTF-8 でURL エンコード)→ %22DVD+Player%22
http://productsearch.linksynergy.com/productsearch?token=2q34asdr35shgrtyw42473457dsfgsdw324d32&one=%22DVD+Player%22

■インターフェース・サンプル6
"DVD Player"のキーワードのうち、”ポータブル”のキーワードを除いて検索する場合
token=2q34asdr35shgrtyw42473457dsfgsdw324d32
keyword="DVD Player" -(UTF-8 でURL エンコード)→ %22DVD+Player%22
none=”ポータブル” -(UTF-8 でURL エンコード)
→ %e3%83%9d%e3%83%bc%e3%82%bf%e3%83%96%e3%83%ab
http://productsearch.linksynergy.com/productsearch?token=2q34asdr35shgrtyw42473457dsfgsdw324d32&keyword=%22DVD+Player%22&none=%e3%83%9d%e3%83%bc%e3%82%bf%e3%83%96%e3%83%ab

*/

/* 検索キーワードの設定 */
$linkshare_api_keyword_1 = urlencode(post_custom('linkshare'));

//結合する。
$linkshare_api_url_1 = "http://productsearch.linksynergy.com/productsearch?token=";
$linkshare_api_url_1 .= "8bf360985087334fac63e17a156e83b56e36b345eacec85d094c385a05318f49" . "&keyword=".$linkshare_api_keyword_1 . "&max=9&sort=categoryname&sorttype=asc";

//URL確認用(作業後はコメントアウトする)
//echo $linkshare_api_url_1;

//ここからアウトプット。表示について。
$linkshare_api_xml_1 = simplexml_load_file($linkshare_api_url_1);

//XML確認用(作業後はコメントアウトする)
//echo '<pre>';
//print_r ($linkshare_api_xml_3);
//echo '</pre>';

?>



<?php
//表示件数が0件なら別の表示(else内)をする。

if ($linkshare_api_xml_1->TotalMatches != 0)
{
//1回目:
echo '<div id="item1">';
foreach($linkshare_api_xml_1->item as $linkshare_output) {

	echo '<div class="item2">';

	echo '<div class="item2img">';
	echo '<a href="' . $linkshare_output->linkurl . '">';
	echo '<img src="';
	echo $linkshare_output->imageurl;
	echo '" alt="" />';
	echo '</a><br />';
	echo '</div>';

	echo '商品名:';
	echo '<strong><a href="';
	echo $linkshare_output->linkurl;
	echo '">';
	echo $linkshare_output->productname;
	echo '</a></strong><br />';
	echo 'お店:';
	echo $linkshare_output->merchantname;
	echo '<br />';

	echo '価格:';
	echo $linkshare_output->price;
	echo '円<br />';

	echo '商品説明:<br />';
	//echo $linkshare_output->description->short;
	echo $linkshare_output->description->long;
	echo '<br />';
	
	echo '商品関連キーワード:<br />';
	echo $linkshare_output->category->primary;
	echo ' ';
	echo $linkshare_output->category->secondary;
	//echo ' ';
	//echo $linkshare_output->keywords;
	echo '<br />';

	echo '</div>';

}
echo '</div>';
}
else
{
	//0件の場合。
	echo the_title();
	echo 'に関連する商品はありません。';
	echo '<br /><br />';
}

?>