Verwendung der eBay-Finding-API in PHP

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 beim kostenlosen eBay-Entwicklerprogramm (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 ;-) –, müssen Sie sich zudem noch beim eBay-Partnernetzwerke anmelden.

Nachdem Sie sich beim eBay-Entwicklerprogramm und -Partnernetzwerk registriert haben, können Sie folgende URL verwenden, um eBay-Artikel abzufragen:

http://svcs.ebay.com/services/search/FindingService/v1?
	OPERATION-NAME=%operationName%&
	SERVICE-VERSION=%serviceVersion%&
	GLOBAL-ID=%globalId%&
	SECURITY-APPNAME=%appId%&
	RESPONSE-DATA-FORMAT=%responseDataFormat%&
	REST-PAYLOAD&
	affiliate.networkId=%networkId%&
	affiliate.trackingId=%trackingId%&
	affiliate.customId=%customId%&
	paginationInput.entriesPerPage=%entriesPerPage%&
	paginationInput.pageNumber=%pageNumber%&
	keywords=%keywords%

Hier ist eine Erklärung zu den jeweiligen Parametern:

  • OPERATION-NAME: Der Name der Operation der eBay-Finding-API, die Sie aufrufen möchten. Für die Schlüsselwort-Suche nehmen wir findItemsByKeywords (Englisch).
  • SERVICE-VERSION: Die API-Version, die Sie verwenden (zurzeit ist 1.0.0 aktuell).
  • GLOBAL-ID: Hier müssen Sie die gewünschte ID der eBay-Seite (Englisch) angeben.
  • SECURITY-APPNAME: Die Anwendungs-ID, die Sie von der eBay-Entwicklerprogramm-Webseite erhalten haben.
  • RESPONSE-DATA-FORMAT: Hier können Sie festlegen, wie die Daten zurückgegeben werden sollen. Ich verwende XML, aber Sie können auch JSON oder NV (Name-Wert-Paare) wählen.
  • REST-PAYLOAD: Senden Sie dies einfach ohne Wert nach den obigen Standard-Headern.
  • affiliate.networkId: Diese ID erhalten Sie vom eBay-Partnernetzwerk.
  • affiliate.trackingId: Diese ID erhalten Sie vom eBay-Partnernetzwerk.
  • affiliate.customId: 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.
  • paginationInput.entriesPerPage: Hier können Sie festlegen, wie viele Artikel (maximal 100) je Abfrage zurückgegeben werden.
  • paginationInput.pageNumber: Für die erste Abfrage setzen Sie dies auf 1 und erhöhen es in weiteren Abfragen, wenn Sie mehr Artikel benötigen.
  • keywords: Zu guter Letzt können Sie hier die Suchbegriffe übergeben. Stellen Sie sicher, dass Sie utf8_decode verwenden, wenn die Suchbegriffe in UTF-8 vorliegen.

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:

/**
 * 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);
}

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.

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 Amazon-Product-Advertising-API).

Haben Sie die eBay-APIs selbst schon einmal verwendet?

Der Artikel ist auch in English verfügbar.

2 Gedanken zu “Verwendung der eBay-Finding-API in PHP

  1. Pingback: Verwendung der Amazon-Product-Advertising-API in PHP | AB-WebLog.com

  2. Pingback: Verwendung der Shopping.com-API in PHP | AB-WebLog.com

Einen Kommentar hinterlassen

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Sie können folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>