Как получить изображение и описание книги из Amazon Book API? - PullRequest
21 голосов
/ 11 января 2009

Этот URL-адрес отправляет номер ISBN в Amazon и возвращает небольшой фрагмент XML, включая автора, заголовок и издателя.

Однако я также хочу получить маленькие, средние и большие графические и книжные описания заголовка.

Проблема: я не могу найти примеры / документацию REST URL, которые бы работали, ни в Google, ни при входе в мою «учетную запись AWS» в Amazon Associates.

Я нашел много примеров 2003-2005 гг., Но все они устарели и дают ошибки. Похоже, облачные веб-сервисы Amazon запутали свою простую документацию REST API для своих книг.

Может кто-нибудь указать мне документацию о том, как я могу получить подробную информацию о книгах в Amazon через REST / XML?

Вот что я пробовал, так что далеко .

Ответы [ 3 ]

12 голосов
/ 11 января 2009

Итак, позвольте мне ответить на мой собственный вопрос. Из другого вопроса я нашел этот полезный PDF , и следующий URL получает изображения, например, см. "ResponseGroup"

1 голос
/ 14 июня 2012

ResponseGroup является ключом, и если вы укажете более одного (через запятую), результаты будут сшиты вместе

То есть "& ResponseGroup = Images, Small" возвращает минимальные сведения и изображения о продуктах

0 голосов
/ 12 апреля 2013

У меня есть несколько функций для захвата amazon xml с использованием php и curl с использованием простых функций, таких как:

    <?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;
}
?>
...