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

概要

テキストボックスの入力値を取得

AmazonAPIへのパラメータとして自動検索

サンプル

検索1:



$v) {
$base_request .= “&” . $k . “=” . $v;
}
$base_request = $baseurl . “?” . substr($base_request, 1);
/* 1.タイムスタンプを付ける */
$params[“Timestamp”] = gmdate(“Y-m-d\TH:i:s\Z”);
$base_request .= “&Timestamp=” . $params[‘Timestamp’];
$base_request = “”;
foreach ($params as $k => $v) {
$base_request .= ‘&’ . $k . ‘=’ . rawurlencode($v);
$params[$k] = rawurlencode($v);
}
$base_request = $baseurl . “?” . substr($base_request, 1);
$base_request = preg_replace(“/.*\?/”, “”, $base_request);
$base_request = str_replace(“&”, “\n”, $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);
$base_request = str_replace(“\n”, “&”, $base_request);
$parsed_url = parse_url($baseurl);
$base_request = “GET\n” . $parsed_url[‘host’] . “\n” . $parsed_url[‘path’] . “\n” . $base_request;
$signature = base64_encode(hash_hmac(‘sha256’, $base_request, Secret_Access_Key, true));
$signature = rawurlencode($signature);
$base_request = “”;
foreach ($params as $k => $v) {
$base_request .= “&” . $k . “=” . $v;
}
$base_request = $baseurl . “?” . substr($base_request, 1) . “&Signature=” . $signature;
echo “検索” . $index . “:結果
“;
$loopCnt=0; //Loop集計用
$amazon_xml=simplexml_load_string(@file_get_contents($base_request));
foreach((object)$amazon_xml->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){
echo “

“;
break;
};
}
}
?>

コード

<form name="myForm" action="#" method="POST">
    検索1:<input type="text" name="box1"
      value="<?= $_REQUEST['box1'] ?>" /><br/>
    検索2:<input type="text" name="box2"
      value="<?= $_REQUEST['box2'] ?>" /><br/>
    検索3:<input type="text" name="box3"
      value="<?= $_REQUEST['box3'] ?>" /><br/><br/>
    <input type="submit" value="検索" /><br/><br/>
</form>
<?php
  // フォームより読み取ったデータを取得
  if(isset($_POST['box1'])) {
    $keywords1 = $_POST['box1'];
  }
  
  if(isset($_POST['box2'])) {
    $keywords2 = $_POST['box2'];
  }
  
  if(isset($_POST['box3'])) {
    $keywords3 = $_POST['box3'];
  }
  
  // ↑テキストボックスの入力値を引数として「商品検索&表示処理」を呼び出し
  getprice(1, "Books", $keywords1);
  getprice(2, "Books", $keywords2);
  getprice(3, "Books", $keywords3);
  
  // 商品検索&表示処理 を定義
  function getprice($index, $searchIndex, $keywords)
  {
    // Amazonへのリクエスト作成
    「AmazonAPIで商品を自動検索する方法(PHP)」参照
    
    echo "検索" . $index . ":結果<br/>";
    
    //Loop集計用
    $loopCnt=0;
    
    // 取得したXMLデータから価格データの抽出&表示
    「AmazonAPIで中古商品を自動検索する方法(PHP)/中古品価格の表示」参照
    
    
    // 商品を2つ表示するとLoopを抜ける
    $loopCnt+=1;
    if($loopCnt==2){
    echo "<br/><br/><br/><br/><br/>";
      break;
    };
  }
?>