Библиотека PHP для выполнения поиска продуктов и поиска с использованием API продукта Amazon.
Эта библиотека требует установки SimpleXML и Curl Acdensions, и использует PHP 7+. Установка проста с помощью композитора:
composer require marcl/amazonproductapiЭто также предполагает, что у вас есть некоторые базовые знания об API продукта Amazon и создали аккаунт Amazon Associate See: Настройка API Amazon Product API.
Вам понадобится ключ AWS, секретный ключ и ассоциированный тег. Убедитесь, что вы сохраняете их безопасность!
Я добавил несколько простых примеров в примерах. examples.php . Чтобы запустить их, создать файл под названием secretKeys.php , содержащий ваши секретные ключи:
<?php
$ keyId = ' YOUR-AWS-KEY ' ;
$ secretKey = ' YOUR-AWS-SECRET-KEY ' ;
$ associateId = ' YOUR-AMAZON-ASSOCIATE-ID ' ;
?>а затем запустите примеры с помощью:
php examples.phpВключите библиотеку в свой код, используя автоторист Composer и создайте Amazonurlbuilder с вашими учетными данными.
require ( ' vendor/autoload.php ' );
use MarcL AmazonAPI ;
use MarcL AmazonUrlBuilder ;
// Keep these safe
$ keyId = ' YOUR-AWS-KEY ' ;
$ secretKey = ' YOUR-AWS-SECRET-KEY ' ;
$ associateId = ' YOUR-AMAZON-ASSOCIATE-ID ' ;
// Setup a new instance of the AmazonUrlBuilder with your keys
$ urlBuilder = new AmazonUrlBuilder (
$ keyId ,
$ secretKey ,
$ associateId ,
' uk '
);
// Setup a new instance of the AmazonAPI and define the type of response
$ amazonAPI = new AmazonAPI ( $ urlBuilder , ' simple ' );
$ items = $ amazonAPI -> ItemSearch ( ' harry potter ' , ' Books ' , ' price ' );Примечание: держите свои ключи Amazon в безопасности. Либо используйте переменные среды, либо включите из файла, который вы не проверяете в GitHub.
Эта библиотека поддерживает все рекламные API -локалы продуктов, и вы можете установить его по мере создания класса Amazonurlbuilder с вашим ключи.
В настоящее время это текущие поддерживаемые локалы:
Для поиска элемента используйте метод ItemSearch() :
// Search for harry potter items in all categories
$ items = $ amazonAPI -> ItemSearch ( ' harry potter ' );
// Search for harry potter items in Books category only
$ items = $ amazonAPI -> ItemSearch ( ' harry potter ' , ' Books ' ); По умолчанию метод ItemSearch() будет искать по фиксации. Если вы хотите сортировать по другой категории, передайте 3 -й параметр с именем категории, которую вы хотите сортировать. Они отличаются по типу категории, но два, которые вам, вероятно, понадобитесь, -это price (сортируйте по низкой цене до высокого) или -price (сортируйте по цене высокой до низкого уровня). Смотрите значения сортировки элементов для более подробной информации.
// Search for harry potter items in Books category, sort by low to high
$ items = $ amazonAPI -> ItemSearch ( ' harry potter ' , ' Books ' , ' price ' );
// Search for harry potter items in Books category, sort by high to low
$ items = $ amazonAPI -> ItemSearch ( ' harry potter ' , ' Books ' , ' -price ' ); Чтобы определить действительные категории для поискового вызова GetValidSearchNames() :
// Get an array of valid search categories we can use
$ searchCategories = $ amazonAPI -> GetValidSearchNames (); Чтобы найти продукт, используя продукт ASIN Number, используйте ItemLookup() :
// Retrieve specific item by id
$ items = $ amazonAPI -> ItemLookUp ( ' B003U6I396 ' );
// Retrieve a list of items by ids
$ asinIds = array ( ' B003U6I396 ' , ' B003U6I397 ' , ' B003U6I398 ' );
$ items = $ amazonAPI -> ItemLookUp ( $ asinIds );По умолчанию данные будут возвращены в виде узлов Simplexml. Тем не менее, вы можете попросить трансформировать данные по -разному, в зависимости от вашего варианта использования для API. Передайте тип при создании класса Amazonapi следующим образом:
// Default return type is XML
$ amazonAPI = new AmazonAPI ( $ amazonUrlBuilder );
$ items = $ amazonAPI -> ItemSearch ( ' harry potter ' );
var_dump ( $ items );Это выведет:
class SimpleXMLElement#2 (2) {
public $OperationRequest = >
class SimpleXMLElement#3 (3) {
public $RequestId = >
string(36) " de58449e-0c1a-47ac-9823-00fd049c52df "
public $Arguments = >
class SimpleXMLElement#5 (1) {
public $Argument = >
array(11) {
... // Return simplified data
$ amazonAPI = new AmazonAPI ( $ amazonUrlBuilder , ' simple ' );
$ items = $ amazonAPI -> ItemSearch ( ' harry potter ' );
var_dump ( $ items );Это вернет упрощенную версию каждого элемента с минимальными данными, но достаточно для простых вариантов использования.
array(10) {
[0] =>
array(8) {
'asin' =>
string(10) "B00543R3WG"
'url' =>
string(212) "http://www.amazon.co.uk/Harry-Potter-Complete-8-Film-Collection/dp/B00543R3WG%3FSubscriptionId%3D1BM0B8TXM1YSZ1M0XDR2%26tag%3Ddjcr-21%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB00543R3WG"
'rrp' =>
double(44.99)
'title' =>
string(58) "Harry Potter - The Complete 8-Film Collection [DVD] [2011]"
'lowestPrice' =>
double(23.4)
'largeImage' =>
string(53) "http://ecx.images-amazon.com/images/I/51qa9nTUsEL.jpg"
'mediumImage' =>
string(61) "http://ecx.images-amazon.com/images/I/51qa9nTUsEL._SL160_.jpg"
'smallImage' =>
string(60) "http://ecx.images-amazon.com/images/I/51qa9nTUsEL._SL75_.jpg"
}
[1] =>
array(8) {
'asin' =>
string(10) "0747558191"
'url' =>
string(212) "http://www.amazon.co.uk/Harry-Potter-Philosophers-Stone-Rowling/dp/0747558191%3FSubscriptionId%3D1BM0B8TXM1YSZ1M0XDR2%26tag%3Ddjcr-21%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D0747558191"
'rrp' =>
double(6.99)
'title' =>
string(40) "Harry Potter and the Philosopher's Stone"
…
Различные типы преобразования данных определяются следующим образом. Не стесняйтесь поднять проблему, если вы хотите, чтобы данные преобразовались в новый тип.
Эта библиотека использует код, основанный на аутентификации API API для PHP от Дэвида Дрейка, но в основном была переписана.
Смотрите лицензию