2009-01-11 117 views
20

This URL向亞馬遜發送一個ISBN號碼,並返回一小部分XML,包括作者,標題和發佈者。如何從亞馬遜書籍API獲取圖書和圖片?

但是,我也想得到小,中,大圖形和書名的描述。

問題:無論是在谷歌還是在Amazon Associates登錄我的「AWS賬戶」時,我都找不到可用的REST URL示例/文檔。

我發現很多2003-2005的例子,但它們都已經過時並出現錯誤,似乎亞馬遜的雲網絡服務已經爲他們的書籍混淆了他們簡單的REST API文檔。

任何人都可以指出我如何通過REST/XML獲得有關Amazon書籍的詳細信息的文檔嗎?

以下是我所試過的far

回答

12

所以,請允許我回答我的問題,從這裏另外一個問題,我發現這個useful PDF及以下URL獲取例如圖像,請參閱「ResponseGroup」

+8

注意,[顯示URL]的(http://webservices.amazon.com/onca/xml?Service=AWSECommerceService&Version=2005-03-23&Operation=ItemLookup&SubscriptionId=13529AWJ97PJXSM2K1R2&AssociateTag=httpwwwcomput- 20&ItemId = B0002ZAILY&IdType = ASIN&ResponseGroup = Images)不再有效,因爲它不包含[signature](http://docs.amazonwebservices.com/AWSECommerceService/latest/DG/index.html?Query_QueryAuth.html) ](https://affiliate-program.amazon.co.uk/gp/advertising/api/detail/faq.html)自2009年8月15日起 – Day 2011-01-04 21:38:06

1

ResponseGroup是關鍵,如果你指定不止一個(逗號分隔),結果被縫合在一起

也就是說,「& ResponseGroup =圖片,小」返回有關產品

-1

我已經建立了一些功能,使用PHP和捲曲搶亞馬遜XML的最基本的信息和圖像使用簡單È功能只是這樣的:

<?php 
function Get_Amazon_XML($tag, $api, $secretkey, $region, $department, $query) 
{ 
$time = time() + 10000; 
$method = 'GET'; 
$host = 'webservices.amazon.'.$region; 
$uri = '/onca/xml'; 
$slug["Service"] = "AWSECommerceService"; 
$slug["Operation"] = "ItemSearch"; 
$slug["SubscriptionId"] = $api; 
$slug["AssociateTag"] = $tag; 
$slug["SearchIndex"] = $department; 
$slug["Condition"] = 'All'; 
$slug["Keywords"] = $query; 
$params["ItemPage"] = 1; 
$slug["TruncateReviewsAt"] = '500'; 
$slug["ResponseGroup"] = 'Images,ItemAttributes,EditorialReview'; 
$slug["Timestamp"] = gmdate("Y-m-d\TH:i:s\Z",$time); 
$slug["Version"] = "2011-08-01"; 
ksort($slug); 
$query_slug = array(); 
foreach ($slug as $slugs=>$value) 
{ 
$slugs = str_replace("%7E", "~", rawurlencode($slugs)); 
$value = str_replace("%7E", "~", rawurlencode($value)); 
$query_slug[] = $slugs."=".$value; 
} 
$query_slug = implode("&", $query_slug); 
$signinurl = $method."\n".$host."\n".$uri."\n".$query_slug; 
$signature = base64_encode(hash_hmac("sha256", $signinurl, $secretkey, True)); // Get Amazon Signature API 
$signature = str_replace("%7E", "~", rawurlencode($signature)); 
$request = "http://".$host.$uri."?".$query_slug."&Signature=".$signature; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; Konqueror/4.0; Microsoft Windows) KHTML/4.0.80 (like Gecko)"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_URL, $request); 
curl_setopt($ch, CURLOPT_TIMEOUT, 10); 
$response = curl_exec($ch); 
curl_close($ch); 
return $response; 
} 
?> 
相關問題