<?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; API</title>
	<atom:link href="http://www.ab-weblog.com/de/schlagwort/api/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 Shopping.com-API in PHP</title>
		<link>http://www.ab-weblog.com/de/verwendung-der-shopping-com-api-in-php/</link>
		<comments>http://www.ab-weblog.com/de/verwendung-der-shopping-com-api-in-php/#comments</comments>
		<pubDate>Sun, 15 Aug 2010 17:03:52 +0000</pubDate>
		<dc:creator>Andreas Breitschopp</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Shopping.com]]></category>
		<category><![CDATA[Softwareentwicklung]]></category>

		<guid isPermaLink="false">http://www.ab-weblog.com/de/?p=162</guid>
		<description><![CDATA[Nach einem Beispiel zur eBay-Finding-API und zur Amazon-Product-Advertising-API in vorangegangenen Beiträgen, möchte ich zum Schluss ein Beispiel zur Shopping.com-API zeigen. Zunächst müssen Sie sich für einen kostenlose Shopping.com-Entwickler-Account (Englisch) registrieren. Nun können Sie mit dem Zusammensetzen einer Abfrage-URL beginnen: http://publisher.api.shopping.com/publisher/3.0/rest/GeneralSearch? &#8230; <a href="http://www.ab-weblog.com/de/verwendung-der-shopping-com-api-in-php/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Nach 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> und zur <a title="Verwendung der Amazon-Product-Advertising-API in PHP" href="http://www.ab-weblog.com/de/verwendung-der-amazon-product-advertising-api-in-php/">Amazon-Product-Advertising-API</a> in vorangegangenen Beiträgen, möchte ich zum Schluss ein Beispiel zur Shopping.com-API zeigen.</p>
<p>Zunächst müssen Sie sich für einen kostenlose <a title="Webseite der Shopping.com Entwickler" href="http://developer.shopping.com" target="_blank">Shopping.com-Entwickler-Account</a> (Englisch) registrieren.</p>
<p>Nun können Sie mit dem Zusammensetzen einer Abfrage-URL beginnen:</p>
<pre class="brush: text; gutter: true">http://publisher.api.shopping.com/publisher/3.0/rest/GeneralSearch?
	apiKey=%apikey%&amp;
	trackingId=%trackingid%&amp;
	subTrackingId=%subTrackingId%&amp;
	categoryId=%categoryId%&amp;
	keyword=%keyword%&amp;
	pageNumber=%pageNumber%&amp;
	numItems=%numItems%&amp;
	hybridSortType=%hybridSortType%
	hybridSortOrder=%hybridSortOrder%</pre>
<p>Hier ist eine Erklärung zu den jeweiligen Parametern:</p>
<ul>
<li><em>GeneralSearch:</em> Wir benötigen die Operation <em><a title="Weitere Informationen zur Operation GeneralSearch" href="http://developer.shopping.com/docs/read/API_Use_Cases#Searching" target="_blank">GeneralSearch</a></em> (Englisch) für unsere Schlüsselwort-Suche.</li>
<li><em>apiKey:</em> Diesen API-Schlüssel erhalten Sie in Ihrem Shopping.com-Entwickler-Account.</li>
<li><em>trackingId:</em> Sie müssen eine Tracking-ID von Shopping.com anfordern, um Geld mit Ihrem Traffic zu verdienen.</li>
<li><em>subTrackingId:</em> Wählen Sie hier irgendeinen zusätzlichen Code, den Sie für ein optionales Tracking (z. B. für eine spezielle Kampagne) verwenden möchten.</li>
<li><em>categoryId:</em> Die Kategorie, in der Sie suchen möchten (leer lassen, um in sämtlichen Kategorien zu suchen).</li>
<li><em>keyword:</em> Ihre Suchbegriffe. Stellen Sie sicher, dass Sie <em>utf8_decode</em> verwenden, wenn die Suchbegriffe in UTF-8 vorliegen.</li>
<li><em>pageNumber:</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.</li>
<li><em>numItems:</em> Hier können Sie festlegen, wie viele Artikel (maximal 100) je Abfrage zurückgegeben werden.</li>
<li><em>hybridSortType:</em> Wählen Sie, ob die Ergebnisse nach Relevanz (<em>relevance</em>) oder nach dem Preis (<em>price</em>) sortiert sein sollen.</li>
<li><em>hybridSortOrder:</em> Wählen Sie, ob die Ergebnisse aufsteigend (<em>ascending</em>) oder absteigend (<em>descending</em>) sortiert sein sollen.</li>
</ul>
<p>Das war&#8217;s: wir müssen nun nur die URL wieder der kleinen 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> und der <a title="Verwendung der Amazon-Product-Advertising-API in PHP" href="http://www.ab-weblog.com/de/verwendung-der-amazon-product-advertising-api-in-php/">Amazon-Product-Advertising-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>Wie Sie sehen können, ist die Shopping.com-API sehr einfach und leicht zu handhaben, nachdem Sie auch die kleinste der drei APIs ist.</p>
<p><em>Haben Sie die Shopping.com-API selbst schon einmal verwendet?<br />
Kennen Sie andere interessante Online-Shopping-APIs?</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ab-weblog.com/de/verwendung-der-shopping-com-api-in-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<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>
		<item>
		<title>Verwendung der eBay-Finding-API in PHP</title>
		<link>http://www.ab-weblog.com/de/verwendung-der-ebay-finding-api-in-php/</link>
		<comments>http://www.ab-weblog.com/de/verwendung-der-ebay-finding-api-in-php/#comments</comments>
		<pubDate>Tue, 08 Jun 2010 16:34:22 +0000</pubDate>
		<dc:creator>Andreas Breitschopp</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[eBay]]></category>
		<category><![CDATA[Softwareentwicklung]]></category>

		<guid isPermaLink="false">http://www.ab-weblog.com/de/?p=152</guid>
		<description><![CDATA[Für ein Kundenprojekt musste eine Webseite an die eBay-Finding-API angebunden werden, um eBay-Artikel innerhalb der Webseite anzeigen zu können. Im Folgenden beschreibe ich wie eBay-Artikel auf Basis einer schlüsselwort-basierten Suche von der eBay-Finding-API bezogen werden können. Zunächst müssen Sie sich &#8230; <a href="http://www.ab-weblog.com/de/verwendung-der-ebay-finding-api-in-php/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Für ein Kundenprojekt musste eine Webseite an die eBay-Finding-API angebunden werden, um eBay-Artikel innerhalb der Webseite anzeigen zu können.</p>
<p>Im Folgenden beschreibe ich wie eBay-Artikel auf Basis einer schlüsselwort-basierten Suche von der eBay-Finding-API bezogen werden können.</p>
<p>Zunächst müssen Sie sich beim kostenlosen <a title="Webseite des eBay-Entwicklerprogramms" href="http://developer.ebay.com" target="_blank">eBay-Entwicklerprogramm</a> (Englisch) anmelden, um Ihre Anwendungs-ID zu erhalten. Wenn Sie zusätzlich Geld mit Ihrem eBay-Traffic verdienen möchten – und wahrscheinlich ist das der Grund weswegen Sie eBay-Artikel auf Ihrer Webseite anzeigen möchten <img src='http://www.ab-weblog.com/de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  –, müssen Sie sich zudem noch beim <a title="Webseite des eBay-Partnernetzwerkes" href="https://publisher.ebaypartnernetwork.com/files/hub/de-DE/index.html" target="_blank">eBay-Partnernetzwerke</a> anmelden.</p>
<p>Nachdem Sie sich beim eBay-Entwicklerprogramm und -Partnernetzwerk registriert haben, können Sie folgende URL verwenden, um eBay-Artikel abzufragen:</p>
<pre class="brush: text; gutter: true">http://svcs.ebay.com/services/search/FindingService/v1?
	OPERATION-NAME=%operationName%&amp;
	SERVICE-VERSION=%serviceVersion%&amp;
	GLOBAL-ID=%globalId%&amp;
	SECURITY-APPNAME=%appId%&amp;
	RESPONSE-DATA-FORMAT=%responseDataFormat%&amp;
	REST-PAYLOAD&amp;
	affiliate.networkId=%networkId%&amp;
	affiliate.trackingId=%trackingId%&amp;
	affiliate.customId=%customId%&amp;
	paginationInput.entriesPerPage=%entriesPerPage%&amp;
	paginationInput.pageNumber=%pageNumber%&amp;
	keywords=%keywords%</pre>
<p>Hier ist eine Erklärung zu den jeweiligen Parametern:</p>
<ul>
<li><em>OPERATION-NAME:</em> Der Name der Operation der eBay-Finding-API, die Sie aufrufen möchten. Für die Schlüsselwort-Suche nehmen wir <em><a title="Weitere Informationen zur Operation findItemsByKeywords" href="http://developer.ebay.com/devzone/finding/callref/finditemsbykeywords.html" target="_blank">findItemsByKeywords</a></em> (Englisch).</li>
<li><em>SERVICE-VERSION:</em> Die API-Version, die Sie verwenden (zurzeit ist <em>1.0.0</em> aktuell).</li>
<li><em>GLOBAL-ID:</em> Hier müssen Sie die gewünschte <a title="Liste der Global-ID-Werte" href="http://developer.ebay.com/DevZone/merchandising/docs/CallRef/Enums/GlobalIdList.html" target="_blank">ID der eBay-Seite</a> (Englisch) angeben.</li>
<li><em>SECURITY-APPNAME:</em> Die Anwendungs-ID, die Sie von der eBay-Entwicklerprogramm-Webseite erhalten haben.</li>
<li><em>RESPONSE-DATA-FORMAT:</em> Hier können Sie festlegen, wie die Daten zurückgegeben werden sollen. Ich verwende <em>XML</em>, aber Sie können auch <em>JSON</em> oder <em>NV</em> (Name-Wert-Paare) wählen.</li>
<li><em>REST-PAYLOAD:</em> Senden Sie dies einfach ohne Wert nach den obigen Standard-Headern.</li>
<li><em>affiliate.networkId:</em> Diese ID erhalten Sie vom eBay-Partnernetzwerk.</li>
<li><em>affiliate.trackingId:</em> Diese ID erhalten Sie vom eBay-Partnernetzwerk.</li>
<li><em>affiliate.customId:</em> Wählen Sie hier irgendeinen zusätzlichen Code, den Sie für ein optionales Tracking (z. B. für eine spezielle Kampagne) verwenden möchten.</li>
<li><em>paginationInput.entriesPerPage:</em> Hier können Sie festlegen, wie viele Artikel (maximal 100) je Abfrage zurückgegeben werden.</li>
<li><em>paginationInput.pageNumber:</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.</li>
<li><em>keywords:</em> Zu guter Letzt können Sie hier die Suchbegriffe übergeben. Stellen Sie sicher, dass Sie <em>utf8_decode</em> verwenden, wenn die Suchbegriffe in UTF-8 vorliegen.</li>
</ul>
<p>Zum Schluss müssen wir nur noch die XML-Daten abfragen. Hierfür verwende ich eine einfache Funkton, um die Daten von der URL zu erhalten und das XML-Dokument zu laden:</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>Natürlich gibt es sehr viel mehr was man mit den eBay-APIs tun kann. Beispielsweise benötigte ich auch eine Artikel-Abfrage basierend auf Kategorien sowie die meist beobachteten Artikel. Das ist auch ziemlich einfach. Falls Sie noch mehr benötigen, können Sie auch den gesamten Kauf-Prozess direkt über die eBay-APIs abwickeln: Dadurch muss der Benutzer Ihrer Seite gar nicht verlassen, um einen Artikel zu erwerben.</p>
<p>Zum Schluss möchte ich sagen, dass die eBay-APIs zwar sehr umfangreich und komplex, jedoch durchaus auch gut dokumentiert sind. Es gibt sehr viel schlechtere Beispiele von API (siehe hierzu auch meinen Beitrag zu der <a title="Verwendung der Amazon-Product-Advertising-API in PHP" href="http://www.ab-weblog.com/de/verwendung-der-amazon-product-advertising-api-in-php/">Amazon-Product-Advertising-API</a>).</p>
<p><em>Haben Sie die eBay-APIs selbst schon einmal verwendet?</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ab-weblog.com/de/verwendung-der-ebay-finding-api-in-php/feed/</wfw:commentRss>
		<slash:comments>2</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! -->