เป็นไฟล์ php ดึง api ของ amazon มาแต่เฉพาะ ASIN กับ Product Name นะครับ ทำให้ก๊อป ASIN เอาไปใช้กันง่ายๆ ไม่ได้ทำแบบ node นะครับ เพราะว่าจะได้ไม่ต้องมาเสียเวลาค้นหา เลข node กัน ตัวนี้ใช้ .htaccess เป็นตัวช่วยให้สามารถคลิ๊กไปที่ หน้าต่อๆไปเพื่อก๊อปๆๆๆๆ ได้อย่างสะดวกครับ
เอาไปลองใช้กันเลย
index.php
<style type="text/css">
<!--
body,td,th {
font-family: Tahoma;
font-size: 12px;
color: #333333;
}
body {
margin-left: 30px;
margin-top: 30px;
margin-right: 30px;
margin-bottom: 30px;
}
h1,h2,h3,h4,h5,h6 {
font-weight: bold;
}
h1 {
font-size: 18px;
}
-->
</style>
<h1>Amazon Quick List</h1>
<table width="90%" border="0" align="center" cellpadding="0" cellspacing="5">
<tr>
<td><form accept-charset="UTF-8" id="search" name="search" method="get" action="index.php">
Category:
<select name="category" id="category">
<option value="Blended">All (-title)</option>
<option value="Books">Books</option>
<option value="Music">Music</option>
<option value="DigitalMusic">DigitalMusic</option>
<option value="Classical">Classical</option>
<option value="DVD">DVD</option>
<option value="VHS">VHS</option>
<option value="Apparel">Apparel</option>
<option value="Toys">Toys</option>
<option value="Baby">Baby</option>
<option value="PCHardware">PCHardware</option>
<option value="VideoGames">VideoGames</option>
<option value="Electronics">Electronics</option>
<option value="Photo">Photo</option>
<option value="Software">Software</option>
<option value="Tools">Tools</option>
<option value="OfficeProducts">OfficeProducts</option>
<option value="Magazines">Magazines</option>
<option value="SportingGoods">SportingGoods</option>
<option value="OutdoorLiving">OutdoorLiving</option>
<option value="Kitchen">Kitchen</option>
<option value="Jewelry">Jewelry</option>
<option value="Beauty">Beauty</option>
<option value="GourmetFood">GourmetFood</option>
<option value="MusicalInstruments">MusicalInstruments</option>
<option value="HealthPersonalCare">HealthPersonalCare</option>
<option value="PetSupplies">PetSupplies</option>
<option value="Automotive">Automotive</option>
<option value="Video">Video</option>
<option value="Wireless">Wireless</option>
<option value="Watches">Watches</option>
</select>
Keyword:
<input name="keywords" type="text" id="keywords" size="25" maxlength="255">
Title:
<input name="title" type="text" id="title" size="18" maxlength="255">
<input type="submit" name="Submit" value="Submit">
</form></td>
</tr>
</table>
<?php//--- EDIT CONFIG ---//$public_key = "1BZ8XEWYCAHTWCV8J902";$private_key = "2MtDFk3C6AjuIriwP2Qq1ipZ/Eo1OHelTkjMpw2a";$AssociateTag = "ablestuff-20";//--- END EDIT CONFIG ---//
$site_url = $_SERVER["SERVER_NAME"];$category = $_REQUEST['category'];$keywords = $_REQUEST['keywords'];$title = $_REQUEST['title'];$page = $_REQUEST['page']; $all = 50; $CFG['amount_link_page'] = 5; if(empty($CFG['amount_link_page'])) $show = $all; else $show = $CFG['amount_link_page']; $now = $page; $start = ($now <= $show) ? 1 : $now-$show; $end = (($all-$now)<$show ? $all+1 : $now+$show); for($i=$start; $i<$end; $i++) { if($i == 1 && empty($search) && $i!=$now) $a_nav .= " <a href=\"http://$site_url/".$category."-".$keywords."-".$title."-1.html\">1</a> "; elseif($i!=$now) $a_nav .= " <a href=\"http://$site_url/".$category."-".$keywords."-".$title."-$i.html\">$i</a> "; else $a_nav .="<b>[".$i."]</b>"; }
//$category = "Electronics";
//$page = "1";
//$keywords = "mp3";
//$title = "sony";
function makeAWSUrl($parameters, $associate_tag, $access_key, $secret_key, $aws_version = '2009-10-01') {
$host = 'ecs.amazonaws.com';
$path = '/onca/xml';
$query = array(
'Service' => 'AWSECommerceService',
'AWSAccessKeyId' => $access_key,
'AssociateTag' => $associate_tag,
'Timestamp' => gmdate('Y-m-d\TH:i:s\Z'),
'Version' => $aws_version,
);
if (is_array($parameters)) {
$query = array_merge($query, $parameters);
}
ksort($query);
$temp = array();
foreach ($query as $k => $v) {
$temp[] = str_replace('%7E', '~', rawurlencode($k)) . '=' . str_replace('%7E', '~', rawurlencode($v));
}
$signable = implode('&', $temp);
$stringToSign = "GET\n$host\n$path\n$signable";
$hex_str = hash_hmac('sha256', $stringToSign, $secret_key);
$raw = '';
for ($i = 0; $i < strlen($hex_str); $i += 2) {
$raw .= chr(hexdec(substr($hex_str, $i, 2)));
}
$query['Signature'] = base64_encode($raw);
ksort($query);
$temp = array();
foreach ($query as $k => $v) {
$temp[] = rawurlencode($k) . '=' . rawurlencode($v);
}
$final = implode('&', $temp);
return 'http://' . $host . $path . '?' . $final;
}
$url = makeAWSUrl(array('Title' => $title, 'ItemPage' => $page, 'Keywords' => $keywords, 'Operation' => 'ItemSearch', 'ResponseGroup' => 'Small', 'SearchIndex' => $category), $AssociateTag, $public_key, $private_key);
$xml = simplexml_load_file ($url);
$ii = 0; foreach($xml->Items as $results) { $totalresults = $results->TotalResults; $totalpages = $results->TotalPages; echo "<p>Total Results is: $totalresults<br />Total Pages is: $totalpages</p>"; }
echo "<p>$a_nav</p>";
$iii = 0; foreach($xml->Items->Item as $item) { $ASIN = $item->ASIN;
$Name = $item->ItemAttributes->Title; echo "$ASIN -> $Name<br />"; }
echo "<p>To copy:</p>";
$iiii = 0; foreach($xml->Items->Item as $itemcopy) { $ASINcopy = $itemcopy->ASIN; echo "$ASINcopy<br />"; }
?>
แก้ไขไฟล์ index.php ในบรรทัด นี้ใส่ ID ของตัวเองก่อนครับ
//--- EDIT CONFIG ---//
$public_key = "1BZ8XEWYCAHTWCV8J902";
$private_key = "2MtDFk3C6AjuIriwP2Qq1ipZ/Eo1OHelTkjMpw2a";
$AssociateTag = "ablestuff-20";
//--- END EDIT CONFIG ---//
.htaccess Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)-([^/]*)-([^/]*)-([^/]*)\.html$ //index.php?category=$1&keywords=$2&title=$3&page=$4 [L]
การติดตั้งก็สุดง่ายครับ สร้างซับโดเมนขึ้นมา หรือไม่ก็ใส่ลงใน appserv เลย ให้สองไฟล์นี้อยู่ใน folder เดียวกันcopy code ที่ผมแยกไว้ให้ save เป็นสองไฟล์ตามรูปครับ index.php กับ .htaccess ครับ
ถ้าไม่ได้ให้ลองปรับเป็น php5 ครับ หรือไม่ก็ลองตรวจสอบโอสต์ดูว่าเปิดให้ใช้งาน .htaccess หรือเปล่าครับ
วิธีใช้*
1. ถ้า search แบบ All ไม่ต้องใส่ keyword ใน ช่อง title ครับ
2. ถ้า search แบบ Category ให้ใส่ keyword แล้วใส่ Title เพื่อกำหนดให้ดึงสินค้ามี Title ตามที่เราใส่ไปครับ