Bibliothèque PHP pour effectuer la recherche et les recherches de produits à l'aide de l'API Product Amazon.
Cette bibliothèque nécessite l'installation des extensions simplexml et de boucle et utilise PHP 7+. L'installation est simple à l'aide du compositeur:
composer require marcl/amazonproductapiIl suppose également que vous avez une connaissance de base de l'API du produit d'Amazon et que vous avez mis en place un compte associé Amazon Voir: Amazon Product API Configuration.
Vous aurez besoin d'une clé AWS, d'une clé secrète et d'une balise associée. Assurez-vous que vous les gardez en sécurité!
J'ai ajouté quelques exemples simples dans examples.php . Pour les exécuter, créez un fichier appelé secretKeys.php contenant vos clés secrètes:
<?php
$ keyId = ' YOUR-AWS-KEY ' ;
$ secretKey = ' YOUR-AWS-SECRET-KEY ' ;
$ associateId = ' YOUR-AMAZON-ASSOCIATE-ID ' ;
?>puis exécutez les exemples avec:
php examples.phpIncluez la bibliothèque de votre code à l'aide du compositeur automatique et créez un AmazonUrlBuilder avec vos informations d'identification
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 ' );Remarque: protégez vos touches Amazon. Utilisez des variables d'environnement ou incluez à partir d'un fichier que vous ne vérifiez pas dans GitHub.
Cette bibliothèque prend en charge tous les lieux API publicitaires de produits et vous pouvez le définir lorsque vous construisez la classe AmazonUrlBuilder avec vos clés.
À l'heure actuelle, ce sont les lieux soutenus actuels:
Pour rechercher un élément, utilisez la méthode 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 ' ); Par défaut, la méthode ItemSearch() recherchera par en vedette. Si vous souhaitez trier par une autre catégorie, passez un 3ème paramètre avec le nom de la catégorie que vous souhaitez trier. Ceux-ci diffèrent par le type de catégorie, mais les deux dont vous aurez probablement besoin sont price (trier par prix bas à haut) ou -price (trier par prix élevé à bas). Voir les valeurs de tri des éléments pour plus de détails.
// 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 ' ); Pour déterminer les catégories valides pour l'appel de recherche GetValidSearchNames() :
// Get an array of valid search categories we can use
$ searchCategories = $ amazonAPI -> GetValidSearchNames (); Pour rechercher le produit à l'aide du numéro de produit ASIN Utilisez 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 );Par défaut, les données seront renvoyées sous forme de nœuds simplexml. Cependant, vous pouvez demander que les données soient transformées différemment, selon votre cas d'utilisation pour l'API. Passez un type lors de l'instanciation de la classe Amazonapi comme suit:
// Default return type is XML
$ amazonAPI = new AmazonAPI ( $ amazonUrlBuilder );
$ items = $ amazonAPI -> ItemSearch ( ' harry potter ' );
var_dump ( $ items );Ce sera sorti:
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 );Cela renverra une version simplifiée de chaque élément avec un minimum de données mais suffisamment pour des cas d'utilisation simples.
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"
…
Les différents types de transformation de données sont définis comme suit. N'hésitez pas à soulever un problème si vous souhaitez que les données se transforment en un nouveau type.
Cette bibliothèque utilise du code basé sur l'authentification de l'API AWS pour PHP par David Drake mais a été principalement réécrit.
Voir la licence