Amazon.com это не только огромный магазин, но еще и бесплатный легальный доступ к огромному количеству информации по продуктам. Некотрое время назад, Амазон перестал принимать запросы без подписи, скрипт, который я написал, подписывает запрос в соответствии с текущими требованиями API. В качестве примера, я хочу показать, как получать информацию по книгам через API Амазона зная только ISBN номер.
Для начала, необходимо пройти регистрацию на сайте aws.amazon.com. После чего вы получаете доступ к Вашей учетной записи, в которой необходимо обратить внимание на закладку «Access Identifiers». Для правильной работы скрипта, необходимо скопировать два параметра «Your Access Key ID» и «Your Secret Access Key». После чего, вставить эти идентификаторы в соответствующие строки скрипта. В результате, скрипт, будет получать информацию по книге в XML формате. Который, вы можете использовать по своему усмотрению.
Более подробно о параметрах, которые вы можете передавать API вы можете прочитать на сайте амазона здесь
Для начала, необходимо пройти регистрацию на сайте aws.amazon.com. После чего вы получаете доступ к Вашей учетной записи, в которой необходимо обратить внимание на закладку «Access Identifiers». Для правильной работы скрипта, необходимо скопировать два параметра «Your Access Key ID» и «Your Secret Access Key». После чего, вставить эти идентификаторы в соответствующие строки скрипта. В результате, скрипт, будет получать информацию по книге в XML формате. Который, вы можете использовать по своему усмотрению.
Более подробно о параметрах, которые вы можете передавать API вы можете прочитать на сайте амазона здесь
Copy Source | Copy HTML
- <?php
- $info = getBookInfo('1591409268', ваш_access_key, ваш_secure_access_key);
-
- print $info;
-
- function getBookInfo($isbn, $access_key, $secure_access_key)
- {
- // формируем список параметров запроса
- $fields = array();
- $fields['AWSAccessKeyId'] = $access_key;
- $fields['ItemId'] = $isbn;
- $fields['MerchantId'] = 'All';
- $fields['Operation'] = 'ItemLookup';
- $fields['ResponseGroup'] = 'Request,Large';
- $fields['Service'] = 'AWSECommerceService';
- $fields['Version'] = '2009-01-06';
- $fields['Timestamp'] = gmdate('Y-m-d\TH:i:s\Z');
-
- // сортируем параметры согласно спецификации Amazon API
- ksort($fields);
-
- $query = array();
- foreach ($fields as $key=>$value) {
- $query[] = "$key=" . urlencode($value);
- }
-
- // подписываем запрос секретным ключом
- $string = "GET\nwebservices.amazon.com\n/onca/xml\n" . implode('&', $query);
- $signed = urlencode(base64_encode(hash_hmac('sha256', $string, $secure_access_key, true)));
-
- // формируем строку запроса к сервису
- $url = 'http://webservices.amazon.com/onca/xml?' . implode('&', $query) . '&Signature=' . $signed;
-
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
- $data = curl_exec($ch);
- $info = curl_getinfo($ch);
-
- if ($info['http_code'] != '200') return false;
-
- return $data;
- }
- ?>
-