AmazonAPIで中古商品を自動検索する方法(PHP)

概要

AmazonAPIを使用して商品を検索する方法は
AmazonAPIで商品を自動検索する方法(PHP)
を参照。
さらにパラメーターを変更してAmazonマーケットプレイスより中古品の価格を検索する。

” . $baseurl;
define(“Associate_tag”, “meraver2-22”); // アソシエイトタグ
define(“Access_Key_ID”, “AKIAIIPLFDQDRG7ZCWGA”); // アクセスキー
define(“Secret_Access_Key”, “4hVw2oeB5lAq9fJMfLrb90p2X7JSGuKjGW5fUvAb”); // シークレットキー
?>

中古品を検索する場合のパラメーター

通常のパラメーターは、
AmazonAPIで商品を自動検索する方法(PHP)/パラメータ付加
を参照。
$params = array();
$params[“Service”] = “AWSECommerceService”;
$params[“AWSAccessKeyId”] = Access_Key_ID;
$params[“Version”] = “2013-08-01”;
$params[“Operation”] = “ItemSearch”;
$params[“SearchIndex”] = “Books”;
$params[“Keywords”] = “PHP”;
$params[“AssociateTag”] = Associate_tag;

// 中古品データを含む
$params[“ResponseGroup”] = "ItemAttributes,OfferFull,OfferSummary,Medium";
// Kindoleを除く
$params[“Power”] = "binding:not kindle";

$v) {
$base_request .= “&” . $k . “=” . $v;
}
$base_request = $baseurl . “?” . substr($base_request, 1);
//echo “↓
” . $base_request;
/* 1.タイムスタンプを付ける */
$params[“Timestamp”] = gmdate(“Y-m-d\TH:i:s\Z”);
$base_request .= “&Timestamp=” . $params[‘Timestamp’];
//echo “↓
” . $base_request;
$base_request = “”;
foreach ($params as $k => $v) {
$base_request .= ‘&’ . $k . ‘=’ . rawurlencode($v);
$params[$k] = rawurlencode($v);
}
$base_request = $baseurl . “?” . substr($base_request, 1);
//echo “↓
” . $base_request;
$base_request = preg_replace(“/.*\?/”, “”, $base_request);
$base_request = str_replace(“&”, “\n”, $base_request);
//echo “↓
” . $base_request;
ksort($params);
$base_request = “”;
foreach ($params as $k => $v) {
$base_request .= “&” . $k . “=” . $v;
}
$base_request = substr($base_request, 1);
$base_request = str_replace(“&”, “\n”, $base_request);
//echo “↓
” . $base_request;
$base_request = str_replace(“\n”, “&”, $base_request);
//echo “↓
” . $base_request;
$parsed_url = parse_url($baseurl);
$base_request = “GET\n” . $parsed_url[‘host’] . “\n” . $parsed_url[‘path’] . “\n” . $base_request;
//echo “↓
” . $base_request;
$signature = base64_encode(hash_hmac(‘sha256’, $base_request, Secret_Access_Key, true));
$signature = rawurlencode($signature);
//echo “↓
” . $signature;
$base_request = “”;
foreach ($params as $k => $v) {
$base_request .= “&” . $k . “=” . $v;
}
$base_request = $baseurl . “?” . substr($base_request, 1) . “&Signature=” . $signature;
//echo “↓
” . $base_request;
?>

中古品価格の表示

$amazon_xml=simplexml_load_string(@file_get_contents($base_request));
foreach((object)$amazon_xml->Items->Item as $item_a=>$item){
  //商品名
  $title=$item->ItemAttributes->Title;
  //New価格
  $newprice=$item->ItemAttributes->ListPrice->FormattedPrice;

  //Old価格
  $oldprice=$item->OfferSummary->LowestUsedPrice->FormattedPrice;
  //商品のURL
  $detail=$item->DetailPageURL;
  //画像のURL
  $image=$item->MediumImage->URL;
  print '<div style="clear:both;">
    <a href="'.$detail.'" target="_blank">
    <img src="'.$image.'" align="left" />'.$title.'</a>'
    . '<br/>' . '新品価格:' . $newprice

    . '<br/>' . '中古価格:' . $oldprice
    . '</div>';
  unset($item);
}

Items->Item as $item_a=>$item){
$title=$item->ItemAttributes->Title; //商品名
$newprice=$item->ItemAttributes->ListPrice->FormattedPrice; //New価格
$oldprice=$item->OfferSummary->LowestUsedPrice->FormattedPrice; //Old価格
$detail=$item->DetailPageURL; //商品のURL
$image=$item->MediumImage->URL; //画像のURL
print ‘

‘.$title.’
. ‘
‘ . ‘新品価格:’ . $newprice
. ‘
‘ . ‘中古価格:’ . $oldprice
. ‘

‘;
print ‘

‘;
unset($item);
// Loop抜け
$loopCnt+=1;
if($loopCnt==2){
break;
};
}
?>