Dans cet aperçu de l'utilisation des amazon web services, on va étudier comment récupérer des informations dans des variables php. Libre à chacun ensuite de les mettre en forme comme il le souhaite.
Pour commencer, il faut créer une clef permettant d'utiliser les aws (amazon web services). Pour cela, direction http://aws.amazon.com/ puis "sign up now".
Il existe tout un tas de façon d'interroger les aws. Mais on va faire simple, on va se contenter de demander une url à paramètres, et recevoir en contrepartie un flux xml duquel on tirera les infos que l'on souhaite obtenir.
Nous allons faire une fonction basique de recherche à partir d'un titre, avec récupération des infos. On se limitera à la catégorie jeux vidéo du catalogue d'amazon. Il s'agit de montrer que les aws sont FACILES à utiliser.
Cette fonction prendra les paramètres suivant :
$rq = le texte de recherche
$page = Le numéro de la page de résultat que l'on souhaite interroger. Par défaut sa valeur est 1.
- Code: Tout sélectionner
<?php
function recherchejv($rq, $page=1){
$clefAws = 'XXXXXXXXX'; /* AccessKeyId, à remplacer par les données fournies par amazon */
$identifiant = 'XXXXXXX-21'; /* AssociateTag, à remplacer par les données fournies par amazon - il faut s'affilier*/
$url='http://ecs.amazonaws.fr/onca/xml?Service=AWSECommerceService&AWSAccessKeyId='.$clefAws.'&AssociateTag='.$identifiant.'&Operation=ItemSearch&SearchIndex=VideoGames&Title='.urlencode($rq).'&ItemPage=1&ResponseGroup=ItemAttributes,Large,Tracks,Subjects';
/* On définit l'url qui nous permettra de récupérer par la suite le flux xml contenant les résultats. ItemSearch indique que l'on souhaite faire une recherche*/
$contenu = @file_get_contents($url); /*On récupère le contenu de la page correspond l'url définie - on ne fait pas de traitement d'erreur, on se contente d'ignorer*/
if ($contenu!=FALSE){
$xml = simplexml_load_string($contenu);/*on place le contenu récupéré dans $xml, en l'ayant préparé pour utiliser simplexml, qui permet de facilement parser des flux xml*/
if ($xml->Items->Request->IsValid==TRUE){ /*on vérifie qu'amazon renvoit que la requête est valide*/
/*On crée les tableau dans lesquels on va stocker les différentes infos récupérées*/
$retour = array();
$retour['asin'] = array();
$retour['url'] = array();
$retour['largeImageURL'] = array();
$retour['plateforme'] = array();
$retour['sortie'] = array();
$retour['editeur'] = array();
/*on récupère l'ASIN du produit - càd l'identifiant unique qui caractérise un produit chez amazon*/
$i=0;
while ($xml->Items->Item[$i]->ASIN){
$retour['asin'][] = $xml->Items->Item[$i]->ASIN;
$i++;
}
/*on récupère l'url de la page du produit sur amazon - on note qu'elle contient l'identifiant bon pour l'affiliation ;) */
$i=0;
while ($xml->Items->Item[$i]->DetailPageURL){
$retour['url'][]= $xml->Items->Item[$i]->DetailPageURL;
$i++;
}
/*On récupère un visuel illustrant le produit*/
$i=0;
while ($xml->Items->Item[$i]->LargeImage->URL){
$retour['largeImageURL'][]= $xml->Items->Item[$i]->LargeImage->URL;
$i++;
}
/*on récupère la plateforme du jeu vidéo */
$i=0;
while ($xml->Items->Item[$i]->ItemAttributes->Platform){
$retour['plateforme'][]= $xml->Items->Item[$i]->ItemAttributes->Platform;
$i++;
}
/*on récupère la date de sortie du jeu vidéo*/
$i=0;
while ($xml->Items->Item[$i]->ItemAttributes->ReleaseDate){
$retour['sortie'][] = $xml->Items->Item[$i]->ItemAttributes->ReleaseDate;
$i++;
}
/*on récupère l'éditeur*/
$i=0;
while ($xml->Items->Item[$i]->ItemAttributes->Publisher){
$retour['editeur'][] = $xml->Items->Item[$i]->ItemAttributes->Publisher;
$i++;
}
/*on récupère la date de sortie du jeu vidéo*/
$i=0;
while ($xml->Items->Item[$i]->ItemAttributes->Publisher){
$retour['editeur'][] = $xml->Items->Item[$i]->ItemAttributes->Publisher;
$i++;
}
return $retour;
}
}
}
/*et voici un exemple de code utilisant la fonction*/
print_r(recherchejv('Saints Row'));
?>
On peut/doit certainement parfaire le code, mais celui-ci est tout à fait fonctionnel
Une fois le tableau de résultats récupéré, on peut facilement mettre en forme les produits en utilisant des boucles.
La boutique amazon indexable intégralement sur votre propre site, c'est enfin possible

