<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>AB-WebLog.com&#187; Amazon</title>
	<atom:link href="http://www.ab-weblog.com/de/schlagwort/amazon/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ab-weblog.com/de</link>
	<description>Andreas Breitschopp</description>
	<lastBuildDate>Mon, 23 Nov 2015 08:51:46 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Verwendung der Amazon-Product-Advertising-API in PHP</title>
		<link>http://www.ab-weblog.com/de/verwendung-der-amazon-product-advertising-api-in-php/</link>
		<comments>http://www.ab-weblog.com/de/verwendung-der-amazon-product-advertising-api-in-php/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 16:03:14 +0000</pubDate>
		<dc:creator>Andreas Breitschopp</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Softwareentwicklung]]></category>

		<guid isPermaLink="false">http://www.ab-weblog.com/de/?p=158</guid>
		<description><![CDATA[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 &#8230; <a href="http://www.ab-weblog.com/de/verwendung-der-amazon-product-advertising-api-in-php/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Nachdem ich mit einem Beispiel zur <a title="Verwendung der eBay-Finding-API in PHP" href="http://www.ab-weblog.com/de/verwendung-der-ebay-finding-api-in-php/">eBay-Finding-API</a> in einem vorangegangenen Beitrag begonnen habe, möchte ich nun mit der Amazon-Product-Advertising-API fortfahren.</p>
<p>Wieder müssen wir mit der Registrierung für einen kostenlosen <a title="Webseite der Amazon Web Services" href="http://aws.amazon.com/de/" target="_blank">Amazon-Web-Services-Account</a>. Um Geld mit Ihrem Amazon-Traffic zu verdienen, müssen Sie sich zusätzlich beim <a title="Webseite des Amazon-Partnernetzes" href="https://partnernet.amazon.de" target="_blank">Amazon-Partnernetze</a> beginnen.</p>
<p>Nun können wir mit dem Zusammensetzen einer Abfrage-URL für die Amazon-Product-Advertising-API beginnen:</p>
<pre class="brush: text; gutter: true">http://ecs.amazonaws.de/onca/xml?
	AWSAccessKeyId=%awsAccessKeyId%&amp;
	AssociateTag=%associateTag%&amp;
	ItemPage=%itemPage%&amp;
	Keywords=%keywords%&amp;
	Operation=%operation%&amp;
	ResponseGroup=%responseGroup%&amp;
	SearchIndex=%categoryId%&amp;
	Service=AWSECommerceService&amp;
	Timestamp=%timestamp%&amp;
	Signature=%signature%</pre>
<p>Hier ist eine Erklärung zu den jeweiligen Parametern:</p>
<ul>
<li><em>ecs.amazonaws.de:</em> Je nachdem, welches Land Sie verwenden möchten, müssen Sie einen <a title="Liste der möglichen Endpunkte" href="http://docs.amazonwebservices.com/AWSECommerceService/latest/DG/index.html?AnatomyOfaRESTRequest.html" target="_blank">bestimmten Endpunkt</a> (Englisch) verwenden. Für Deutschland ist es <em>ecs.amazonaws.de</em>.</li>
<li><em>AWSAccessKeyId:</em> Diesen Zugriffsschlüssel erhalten Sie in Ihrem Amazon-Web-Services-Account.</li>
<li><em>ItemPage:</em> Für die erste Abfrage setzen Sie dies auf <em>1</em> und erhöhen es in weiteren Abfragen, wenn Sie mehr Artikel benötigen. Jede Antwort enthält bis zu 10 Artikel (dies kann nicht geändert werden).</li>
<li><em>Keywords:</em> Ihre Suchbegriffe. Stellen Sie sicher, dass Sie hier <em>rawurlencode</em> verwenden.</li>
<li><em>Operation:</em> Der Name der Operation der Amazon-Product-Advertising-API, die Sie aufrufen möchten. Für die Schlüsselwort-Suche nehmen wir <em><a title="Weitere Informationen zur Operation ItemSearch" href="http://docs.amazonwebservices.com/AWSECommerceService/latest/DG/ItemSearch.html" target="_blank">ItemSearch</a></em> (Englisch).</li>
<li><em>ResponseGroup:</em> Je nachdem wie detailliert Sie die Antwort benötigen, können Sie eine sinnvolle <a title="Liste der Antwortgruppen" href="http://docs.amazonwebservices.com/AWSECommerceService/latest/DG/CHAP_ResponseGroupsList.html" target="_blank">Antwortgruppe</a> (Englisch). I verwende meistens <em>Medium</em> für Artikelsuchen.</li>
<li><em>SearchIndex:</em> Ein <a title="Liste der Such-Indizes" href="http://docs.amazonwebservices.com/AWSECommerceService/latest/DG/index.html?APPNDX_SearchIndexValues.html" target="_blank">Such-Index</a> (Englisch) ist eine Art oberste Kategorie. Wenn Sie in allem suchen möchten, wählen Sie einfach <em>All</em>.</li>
<li><em>Service:</em> Verwenden Sie hier einfach <em>AWSECommerceService</em>.</li>
<li><em>Timestamp:</em>Zeitstempel, der in PHP wie folgt generiertert wird:
<pre class="brush: php; gutter: false">rawurlencode(gmdate('Y-m-d\TH:i:s\Z'))</pre>
</li>
<li><em>Signature:</em> Das ist der witzigste Teil: Bitte lesen Sie unten, wie Sie diese Signatur generieren können.</li>
</ul>
<p>Um eine gültige API-Anfrage senden zu können, müssen Sie die Signatur wie folgt berechnen:</p>
<pre class="brush: php; gutter: true">$request = "GET\necs.amazonaws.de\n/onca/xml\n";
$request .= "AWSAccessKeyId=%awsAccessKeyId%&amp;AssociateTag=%associateTag%&amp;ItemPage=%itemPage%&amp;Keywords=%keywords%&amp;Operation=%operation%&amp;ResponseGroup=%responseGroup%&amp;SearchIndex=%categoryId%&amp;Service=AWSECommerceService&amp;Timestamp=%timestamp%";
$signature = rawurlencode(base64_encode(hash_hmac('sha256', $request, %secretKey%, true)));</pre>
<p>Den benötigten <em>%secretKey%</em> erhalten Sie auch in Ihrem Amazon-Web-Services-Account.</p>
<p>Wenn Sie alles richtig umgesetzt haben, können Sie die erzeugte URL dieser Funktion, die wir bereits für die Abfrage bei der <a title="Verwendung der eBay-Finding-API in PHP" href="http://www.ab-weblog.com/de/verwendung-der-ebay-finding-api-in-php/">eBay-Finding-API</a> verwendet haben, übergeben und die XML-Dokument-Antwort der API auswerten:</p>
<pre class="brush: php; gutter: true">/**
 * 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);
}</pre>
<p>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 <em>nodes</em>) 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.</p>
<p><em>Was ist Ihre Meinung zu der Amazon-Product-Advertising-API?</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ab-weblog.com/de/verwendung-der-amazon-product-advertising-api-in-php/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->