ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: Amazon Product Avertiser API  (อ่าน 1024 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
wanlop99
ก๊วนเสียว
*

พลังน้ำใจ: 11
ออฟไลน์ ออฟไลน์

กระทู้: 219



ดูรายละเอียด
« เมื่อ: 10 สิงหาคม 2009, 20:59:47 »

สวัสดี เพื่อนๆ ในบอร์ดนี้ครับ หลังจากได้รับความรู้จากบอร์ดนี้ ซึ่งเป็นประโยชน์กับผมมาก และเป็นหนทางการทำเงิน online ซึ่งผมสนใจมานาน (แต่ถึงวันนี้ยังไมประสบผลสำเร็จก็ตาม)

หลังวันที่ 15 สิงหาคม 2552 ทางอเมซอนก็จะมีการเปลี่ยนแปลงเกี่ยวกับ AWS ซึ่งใครที่ใช้ Code เดิมอยู่ก็จะใช้ไม่ได้ เพราะอเมซอนได้เพิ่มเติมการ Request API ด้วย AWS Publickey และ Secretkey ซึ่งต้องมีการเข้ารหัส ก่อนการส่ง Request ไป

วันนี้ผมได้ลองค้นหาวิธีการควบคู่กับการอ่าน Doc ของ Amazon ทำให้ได้ผลเป็นดังนี้ครับ

โค๊ด:
<?php

function awsrequest($region$params$public_key$private_key)
{

    
$method "GET";
    
$host "ecs.amazonaws.".$region;
    
$uri "/onca/xml";

    
// additional parameters
    
$params["Service"] = "AWSECommerceService";
    
$params["AWSAccessKeyId"] = $public_key;
    
// GMT timestamp
    
$params["Timestamp"] = gmdate("Y-m-d\TH:i:s\Z");
    
// API version
    
$params["Version"] = "2009-03-31";
    
    
// sort the parameters
    
ksort($params);
    
    
// create the canonicalized query
    
$canonicalized_query = array();
    foreach (
$params as $param=>$value)
    {
        
$param str_replace("%7E""~"rawurlencode($param));
        
$value str_replace("%7E""~"rawurlencode($value));
        
$canonicalized_query[] = $param."=".$value;
    }
    
$canonicalized_query implode("&"$canonicalized_query);
    
    
// create the string to sign
    
$string_to_sign $method."\n".$host."\n".$uri."\n".$canonicalized_query;
    
    
// calculate HMAC with SHA256 and base64-encoding
    
$signature base64_encode(hash_hmac("sha256"$string_to_sign$private_keyTrue));
    
    
// encode the signature for the request
    
$signature str_replace("%7E""~"rawurlencode($signature));
    
    
// create request
    
$request "http://".$host.$uri."?".$canonicalized_query."&Signature=".$signature;
    
    
// do request
    
$response = @file_get_contents($request);
    
    if (
$response === False)
    {
        return 
False;
    }
    else
    {
        
// parse XML
        
$pxml simplexml_load_string($response);
        if (
$pxml === False)
        {
            return 
False// no xml
        
}
        else
        {
            return 
$pxml;
        }
    }
}
?>


โค๊ด:
<?php 
include(
"awsrequest.php");

$public_key "Your Access Key";
$private_key ="Your Secret Key";

//$country = $_GET['country'];
//$itempage = $_GET['itempage'];
//$keywords = trim($_GET['keyword']);

$country "com";
$itempage 1;
$keywords "harry potter";


//if (!in_array($country, array('com','co.uk','ca','fr','de','co.jp')))
// $country = "com";

$pxml awsrequest($country, array("ItemPage"=>$itempage,"Keywords"=>$keywords,"Operation"=>"ItemSearch","ResponseGroup"=>"Medium","SearchIndex"=>"Books"), $public_key,$private_key);

header("Content-type: text/xml");
echo @file_get_contents($pxml);
?>


ผลที่ไดจะเป็น XML จากนั้นเพื่อนๆ ก็ใช้ XML paser จัดการได้เลยครับ

บันทึกการเข้า

*** link การพนัน ***
Biggy
ก๊วนเสียว
*

พลังน้ำใจ: 15
ออฟไลน์ ออฟไลน์

กระทู้: 467



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 11 สิงหาคม 2009, 16:59:49 »

ลองแล้วไม่ขึ้นอะ ผิดตรงไหนไม่รู้ ก๊อบตามแล้วนะ
บันทึกการเข้า

Chang
ก๊วนเสียว
*

พลังน้ำใจ: 41
ออฟไลน์ ออฟไลน์

กระทู้: 283



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 11 สิงหาคม 2009, 17:38:53 »

ขอบคุณครับ ขอลองก่อน
บันทึกการเข้า

UnzO
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 54
ออฟไลน์ ออฟไลน์

กระทู้: 1,872



ดูรายละเอียด เว็บไซต์
« ตอบ #3 เมื่อ: 13 สิงหาคม 2009, 04:25:50 »

เหมือนเดี๊ยะ  Grin แต่ก็ขอบคุณครับ

http://forums.thaisem.com/index.php?topic=9870.0
บันทึกการเข้า
หน้า: [1]   ขึ้นบน
พิมพ์