Pour se mettre doucement dans le bain, je vous invite à suivre pas à pas ce petit tutoriel pour concevoir un premier script PHP pour tester nos requêtes.
UrlSigner
La fonction qui va nous permettre d'entrer en contact avec l'API KELKOO est UrlSigner définit comme suit :
function UrlSigner($urlDomain, $urlPath, $partner, $key){
settype($urlDomain, 'String');
settype($urlPath, 'String');
settype($partner, 'String');
settype($key, 'String');
$URL_sig = "hash";
$URL_ts = "timestamp";
$URL_partner = "aid";
$URLreturn = "";
$URLtmp = "";
$s = "";
// get the timestamp
$time = time();
// replace " " by "+"
$urlPath = str_replace(" ", "+", $urlPath);
// format URL
$URLtmp = $urlPath . "&" . $URL_partner . "=" . $partner . "&" . $URL_ts . "=" . $time;
// URL needed to create the tokken
$s = $urlPath . "&" . $URL_partner . "=" . $partner . "&" . $URL_ts . "=" . $time . $key;
$tokken = "";
$tokken = base64_encode(pack('H*', md5($s)));
$tokken = str_replace(array("+", "/", "="), array(".", "_", "-"), $tokken);
$URLreturn = $urlDomain . $URLtmp . "&" . $URL_sig . "=" . $tokken;
return $URLreturn;
}
On stockera cette fonction dans fichier nommé UrlSigner.php (vous pouvez l'appeler comme vous voulez), et on l’appellera chaque fois qu'on veux lancer une requête.
Pour ce premier test, on va lancer une requête sur le mot clé "iphone 5", on simule la requête dans le Request Builder en utilisant le Template "Product Search V3" pour obtenir l'url suivante :
http://fr.shoppingapis.kelkoo.com/V3/productSearch?query=iphone+5&sort=default_ranking&start=1&results=20&show_products=1&show_subcategories=1&show_refinements=1&aid=Tracking_Id×tamp=1393443050&hash=zhorGAY8xZk6V8gltepr2w--
A partir de là, on va construire notre url de requête comme suit (on a limiter le nombre de résultats à 4) :
$url = UrlSigner('http://fr.shoppingapis.kelkoo.com', '/V3/productSearch?query=iphone+5&sort=default_ranking&start=1&results=4&show_products=1&show_subcategories=1&show_refinements=1','Tracking_Id', 'Affiliate_Key');Noter la suppression de "×tamp=1393443050&hash=zhorGAY8xZk6V8gltepr2w--" car ce sont des données propres à l'API
Traitement du résultat
La variable $url contient maintenant notre fichier xml, pour le parser on utilisera la fonction simplexml_load_file() :
<?php include('UrlSigner.php'); $url = UrlSigner('http://fr.shoppingapis.kelkoo.com', '/V3/productSearch?query=iphone+5&sort=default_ranking&start=1&results=4&show_products=1&show_subcategories=1&show_refinements=1','Tracking_Id', 'Affiliate_Key'); $xml = simplexml_load_file($url); echo $xml->Products['totalResultsAvailable'].' résultats chez '.$xml->Products['totalMerchantsAvailable'].' marchands'; echo '<table width="600" border="1"> <tr> <td></td> <td>Produit</td> <td>Marchand</td> <td>Prix(€)</td> <td>Lien</td> </tr>'; foreach($xml->Products->Product as $product){ echo '<tr> <td><img src="'.$product->Offer->Images->Image->Url.'" /></td> <td>'.$product->Offer->Title.'</td> <td>'.$product->Offer->Merchant->Name.'</td> <td>'.$product->Offer->Price->Price.'</td> <td><a href="http://clk.tradedoubler.com/click?p=XXXXX&a=XXXXXXX&g=XXXXXXXX&url='.$product->Offer->Url.'" target="_blank">Lien</a></td> </tr>'; } echo '</table>'; ?>
0 commentaires :
Enregistrer un commentaire