2009-01-11 118 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; 
} 
?> 
相关问题