如何从Amazon Book API获取图书图形和说明?

时间:2009-01-11 15:51:30

标签: api amazon

This URL向亚马逊发送一个ISBN编号并获取一小部分XML,包括作者,标题和发布者。

但是,我还希望获得标题的小型,中型和大型图形和书籍描述。

问题:我无法在Google或在Amazon Associates登录我的“AWS账户”时找到无效的REST URL示例/文档。

我发现2003 - 2005年有很多例子,但它们都已经过时并且出错了,似乎亚马逊的云网络服务已经为他们的书籍模糊了他们简单的REST API文档。

有人能指出我如何通过REST / XML获取有关亚马逊书籍的详细信息的文档吗?

以下是我尝试过的far

3 个答案:

答案 0 :(得分:12)

所以,请允许我回答我自己的问题,从另一个问题我发现这个useful PDF以及下面的URL获取图片,请参阅“ResponseGroup”

答案 1 :(得分:1)

ResponseGroup是关键,如果指定多个(逗号分隔),结果将被拼接在一起

即,“& ResponseGroup = Images,Small”返回有关产品的最小细节和图像

答案 2 :(得分:-1)

我已经构建了一些函数来使用php和curl使用简单的函数来抓取amazon 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;
}
?>