Amazon Product Advertising API [ECS]
Oke, kali ini cuma sebagai bahan buat corat-coret aja biar saya ga lupa apa yang sedang saya pelajari. Saya mau nulis tentang penggunaan Amazon API. API yang dimaksud di sini yaitu yang Product Advertising API. Pada dasarnya, web API yang sekarang-sekarang ini menggunakan teknik REST. Alias kita minta data ke server yang dituju menggunakan URL telah disediakan.
Secara umum URL yang digunakan untuk mendapatkan list produk-produk amazon yaitu seperti ini,
http://ecs.amazonaws.com/onca/xml?Operation=ItemSearch&
SearchIndex=[Category]&Keywords=[Keyword]&Service=AWSECommerceService&AWSAccessKeyId=[Access Key D]&AssociateTag=[ID]&Timestamp=[YYYY-MM-DDThh:mm:ssZ]&Signature=[Request Signature]
URL di atas terbagi menjadi tiga bagian, yang pertama yaitu bagian utama untuk berkomunikasi dengan server amazon, yaitu http://ecs.amazonaws.com/onca/xml, kemudian bagian kedua yaitu parameter-parameter yang digunakan untuk merequest &Operation=ItemSearch&SearchIndex=[Category]&Keywords=[Keyword], yang terakhir yaitu bagian untuk melakukan authentication ke server amazon bahwa kita akan mengambil daftar produk amazon &Service=AWSECommerceService&AWSAccessKeyId=[Access Key D]&AssociateTag=[ID]&Timestamp=[YYYY-MM-DDThh:mm:ssZ]&Signature=[Request Signature]
Untuk melakukan request tersebut, di PHP kita bisa menggunakan php curl. Buat php curl nya bisa dicari lah ya di google. Nah bagian yang paling nyebelin dari amazon API ini yaitu pada bagian authentication nya. Rada ribet kalo saya bilang. Abis saya juga ga ngerti-ngerti gimana cara bikin signature buat authentication ini.
Penjelasan mengenai signature bisa di lihat di link ini. Sedangkan buat contoh pembuatan signature menggunakan PHP bisa dilihat di sini. Saya copas sebagian di sini ya,
$AWSAccessKeyId = "";
$SecretAccessKey = "";
$ItemId = "0679722769"; // ASIN
$Timestamp = gmdate("Y-m-d\TH:i:s\Z");
$Timestamp = str_replace(":", "%3A", $Timestamp);
$ResponseGroup = "ItemAttributes,Offers,Images,Reviews";
$ResponseGroup = str_replace(",", "%2C", $ResponseGroup);
$String = "AWSAccessKeyId=$AWSAccessKeyId&
ItemId=$ItemId&
Operation=ItemLookup&
ResponseGroup=$ResponseGroup&
Service=AWSECommerceService&
Timestamp=$Timestamp&
Version=2009-01-06";
$String = str_replace("\n", "", $String);
$Prepend = "GET\nwebservices.amazon.com\n/onca/xml\n";
$PrependString = $Prepend . $String;
$Signature = base64_encode(hash_hmac("sha256", $PrependString, $SecretAccessKey, True));
$Signature = str_replace("+", "%2B", $Signature);
$Signature = str_replace("=", "%3D", $Signature);
?>
Nantinya, hasil request dari amazon API ini berupa XML, XML tersebut bisa diparsing menggunakan simpe_load_xml agar bisa lebih mudah diolah lebih lanjut.
Oke, sekarang sudah lengkap, tinggal ngutak-atik di parameternya aja, apa butuhnya kita. Setelah jelas seperti ini, mari kita bermain-main dengan API amazon ini. Selamat bermain!
Ramadhan di Binus university ada apa ya? bulan puasa di binus enaknya ngapain ya?


















