PHP -Bibliothek, um Produkte und Suchanfragen mit der Amazon -Produkt -API durchzuführen.
In dieser Bibliothek müssen die Simplexml- und Lockenerweiterungen installiert werden und verwendet Php 7+. Die Installation ist mit Komponisten einfach:
composer require marcl/amazonproductapiEs wird auch davon ausgegangen, dass Sie über grundlegende Kenntnisse über die Produkt API von Amazon verfügen und ein Amazon Associate -Konto eingerichtet haben. Siehe: Amazon -Produkt -API -Einrichtung.
Sie benötigen einen AWS -Schlüssel, ein geheimer Schlüssel und einen Associate -Tag. Stellen Sie sicher, dass Sie diese sicher halten!
Ich habe einige einfache Beispiele in examples.php hinzugefügt.php. Um sie auszuführen, erstellen Sie eine Datei namens secretKeys.php mit Ihren Geheimtasten:
<?php
$ keyId = ' YOUR-AWS-KEY ' ;
$ secretKey = ' YOUR-AWS-SECRET-KEY ' ;
$ associateId = ' YOUR-AMAZON-ASSOCIATE-ID ' ;
?>Und dann die Beispiele mit: Führen Sie mit:
php examples.phpGeben Sie die Bibliothek in Ihren Code mit dem Composer Autoloader ein und erstellen Sie einen Amazonurlbuilder mit Ihren Anmeldeinformationen
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 ' );Hinweis: Halten Sie Ihre Amazon -Schlüssel sicher. Verwenden Sie entweder Umgebungsvariablen oder geben Sie eine Datei ein, die Sie nicht in GitHub einchecken.
Diese Bibliothek unterstützt API -Orte für Produktwerbung und Sie können sie so festlegen, dass Sie die Amazonurlbuilder -Klasse mit Ihren Schlüssel erstellen.
Zu diesem Zeitpunkt sind dies die derzeit unterstützten Orte:
Um nach einem Element zu suchen, verwenden Sie die Methode 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 ' ); Standardmäßig wird die Methode ItemSearch() nach vorgestellter Suche gesucht. Wenn Sie nach einer anderen Kategorie sortieren möchten, übergeben Sie einen dritten Parameter mit dem Namen der Kategorie, nach der Sie sortieren möchten. Diese unterscheiden sich nach Kategorie -Typ, aber die beiden, die Sie wahrscheinlich benötigen, sind price (sortieren nach Preis niedrig bis hoch) oder -price (sortieren Sie nach Preis hoch bis niedrig). Weitere Informationen finden Sie unter Elementsearch -Sort -Werten.
// 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 ' ); Um gültige Kategorien für den Suchanruf zu bestimmen, GetValidSearchNames() :
// Get an array of valid search categories we can use
$ searchCategories = $ amazonAPI -> GetValidSearchNames (); Um das Produkt mithilfe der Produktnummer zu suchen, verwenden Sie 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 );Standardmäßig werden die Daten als simplexml -Knoten zurückgegeben. Sie können jedoch nach der unterschiedlichen Transformation der Daten bitten, abhängig von Ihrem Anwendungsfall für die API. Übergeben Sie einen Typ, wenn Sie die Amazonapi -Klasse wie folgt instanziieren:
// Default return type is XML
$ amazonAPI = new AmazonAPI ( $ amazonUrlBuilder );
$ items = $ amazonAPI -> ItemSearch ( ' harry potter ' );
var_dump ( $ items );Dies wird ausgeben:
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 );Dadurch wird eine vereinfachte Version jedes Elements mit minimalen Daten zurückgegeben, aber genug für einfache Anwendungsfälle.
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"
…
Die verschiedenen Datentransformationstypen sind wie folgt definiert. Fühlen Sie sich frei, ein Problem zu lösen, wenn Sie möchten, dass die Daten in einen neuen Typ umwandelt.
Diese Bibliothek verwendet Code basierend auf der AWS -API -Authentifizierung für PHP von David Drake, wurde jedoch größtenteils umgeschrieben.
Siehe Lizenz