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.
Pingback: Verwendung der Amazon-Product-Advertising-API in PHP | AB-WebLog.com
Pingback: Verwendung der Shopping.com-API in PHP | AB-WebLog.com