Nachdem ich mit einem Beispiel zur eBay-Finding-API in einem vorangegangenen Beitrag begonnen habe, möchte ich nun mit der Amazon-Product-Advertising-API fortfahren.
Wieder müssen wir mit der Registrierung für einen kostenlosen Amazon-Web-Services-Account. Um Geld mit Ihrem Amazon-Traffic zu verdienen, müssen Sie sich zusätzlich beim Amazon-Partnernetze beginnen.
Nun können wir mit dem Zusammensetzen einer Abfrage-URL für die Amazon-Product-Advertising-API beginnen:
http://ecs.amazonaws.de/onca/xml?
AWSAccessKeyId=%awsAccessKeyId%&
AssociateTag=%associateTag%&
ItemPage=%itemPage%&
Keywords=%keywords%&
Operation=%operation%&
ResponseGroup=%responseGroup%&
SearchIndex=%categoryId%&
Service=AWSECommerceService&
Timestamp=%timestamp%&
Signature=%signature%
Hier ist eine Erklärung zu den jeweiligen Parametern:
Um eine gültige API-Anfrage senden zu können, müssen Sie die Signatur wie folgt berechnen:
$request = "GET\necs.amazonaws.de\n/onca/xml\n";
$request .= "AWSAccessKeyId=%awsAccessKeyId%&AssociateTag=%associateTag%&ItemPage=%itemPage%&Keywords=%keywords%&Operation=%operation%&ResponseGroup=%responseGroup%&SearchIndex=%categoryId%&Service=AWSECommerceService&Timestamp=%timestamp%";
$signature = rawurlencode(base64_encode(hash_hmac('sha256', $request, %secretKey%, true)));
Den benötigten %secretKey% erhalten Sie auch in Ihrem Amazon-Web-Services-Account.
Wenn Sie alles richtig umgesetzt haben, können Sie die erzeugte URL dieser Funktion, die wir bereits für die Abfrage bei der eBay-Finding-API verwendet haben, übergeben und die XML-Dokument-Antwort der API auswerten:
/**
* Gibt das SimpleXML-Objekt zurück.
*
* @param string $url Die URL, von der das XML-Dokument abgefragt werden soll.
* @return string Das SimpleXML-Objekt.
*
*/
function getXml($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 3);
$result = curl_exec($ch);
curl_close($ch);
return simplexml_load_string($result);
}
Leider muss ich sagen, dass ich die Amazon-Product-Advertising-API für sehr verwirrend und schlecht dokumentiert halte. Besonders, wenn Sie mit diesen Such-Indizes und Kategorien (sogenannten nodes) arbeiten müssen, macht das alles andere als Spaß. Und es gibt nicht nur Sachen, die in der Amazon-Product-Advertising-API-Dokumentation schlecht, sondern schlichtweg auch falsch dokumentiert sind.
Was ist Ihre Meinung zu der Amazon-Product-Advertising-API?