ebay-Zugriff mit Access

Bereits im Jahr 2009 haben wir gezeigt, wie Sie von Access aus Daten von ebay auslesen und selbst Angebote einstellen. über die Jahre ändern sich jedoch die Mechanismen einer solchen Online-Schnittstelle, also schauen wir uns in diesem Beitrag an, wie der aktuelle Zugriff auf ebay aussieht und wie Sie diesen von einer Access-Anwendung aus realisieren. Dazu legen wir einen neuen Benutzer- und Entwickler-Account an und erstellen dann die notwendigen Objekte, um von Access aus auf die Daten zuzugreifen.

Für das Verständnis der folgenden Abhandlung ist es wichtig zu wissen, dass Sie sowohl einen normalen eBay-Account als auch einen Entwickler-Account benötigen.

Neuen ebay-Account anlegen

Falls Sie noch kein ebay-Konto haben, öffnen Sie einfach die ebay-Seite unter www.ebay.de. Dort finden Sie ganz unten unter Kaufen|Neu anmelden bei ebay alle notwendigen Informationen. Kurz gefasst klicken Sie dort auf Jetzt bei eBay anmelden und landen auf der Seite signin.ebay.de. Hier geben Sie Ihre Daten auf der Registerseite Neu anmelden ein (s. Bild 1).

Neu registrieren bei ebay

Bild 1: Neu registrieren bei ebay

Sie erhalten dann einen eindeutigen, automatisch generierten Benutzernamen wie andminhors_0, den Sie aber auch durch einen selbst gewählten Benutzernamen überschreiben können. Damit sind die Arbeiten auf dieser Seite bereits erledigt. Die meisten allgemeinen Informationen finden Sie nun im Bereich Mein eBay.

Neuen Entwickler-Account anlegen

Nun öffnen Sie die Webseite developer.ebay.com und damit das ebay-Entwicklerprogramm. Auch hier registrieren wir uns zunächst, und zwar durch einen Klick auf Sign In/Join. Auch dort nutzen wir ein Formular, um unsere Daten einzugeben (s. Bild 2). Damit wir die beiden Benutzer nachher unterscheiden können, habe ich dem Benutzernamen beim Developer-Programm die Zeichenfolge _api angehängt.

Neu registrieren als Developer bei ebay

Bild 2: Neu registrieren als Developer bei ebay

Application Keys holen

Im folgenden Dialog geben Sie für die Vergabe der sogenannten Application Keys, die Sie später benötigen, den Namen der geplanten Anwendung ein – hier kurz und bündig accessBay (s. Bild 3). Nun erscheinen unten Links zum Erstellen von Keysets für Sandbox- und Production-Modus. Sie entscheiden selbst, ob Sie zunächst in der Sandbox üben wollen oder direkt auf echte ebay-Daten zugreifen wollen.

Anwendungsname angeben

Bild 3: Anwendungsname angeben

Nach der Auswahl des Eintrags Production fragt ebay einige weitere Daten zu Ihrer Person ab, um Sie kontaktieren zu können, falls es im Rahmen der Benutzung der Keys zu Problemen kommt (s. Bild 4).

Angabe weiterer Informationen

Bild 4: Angabe weiterer Informationen

Danach erhalten Sie eine übersicht, über die Sie wahlweise auch noch ein Keyset für den Bereich erstellen können, den Sie noch nicht berücksichtigt haben – also wahlweise Sandbox oder Production (s. Bild 5). Gleichzeitig weist ebay im Falle des Production-KeySet darauf hin, dass Sie 5.000 Aufrufe pro Tag an die ebay-Api absetzen können. Für mehr ist eine Ansicht der Anwendung durch das ebay-Team erforderlich.

übersicht mit den Application Keys für den Sandbox- und für den Production-Modus

Bild 5: übersicht mit den Application Keys für den Sandbox- und für den Production-Modus

User Token erstellen

Nun benötigen Sie noch einen User Token für das Keyset, das Sie verwenden möchten. Dazu klicken Sie rechts neben App ID auf den Link User Tokens.

Der Clou des User Tokens ist, dass es sich dabei um einen Schlüssel handelt, der im Kontext eines ebay-Benutzerkontos erstellt wird und der sich auf die zu programmierende Anwendung bezieht. Da wir eine Anwendung nur für uns selbst programmieren möchten, ist dies die richtige Option für uns. Die Alternative wäre, einen Token anzufragen, der eine Anwendung ermöglicht, die beliebige ebay-Nutzer verwenden können, ohne dass jeder einzelne sich einen User Token holen muss – die Benutzer müssen sich dann lediglich selbst anmelden.

Den Token erhalten wir über den Dialog aus Bild 6. Hier klicken Sie auf Sign in to Production (sofern Sie einen Token für den Production-Modus anfragen – sonst würde hier stehen Sign in to Sandbox. Dazu müssten Sie allerdings auch noch einen neuen Sandbox-User anlegen). Die gewünschte Umgebung können Sie über die Optionen oben auf der Seite auswählen.

Erstellen eines User Tokens

Bild 6: Erstellen eines User Tokens

Im folgenden Dialog fragt ebay nach weiteren Daten zu Ihrer Person, also zu der Person, die das Entwickler-Konto nutzt. In diesem Fall werden die bestehenden Daten um die Adressdaten ergänzt.

Anschließend erscheint der Anmeldedialog der ebay-Seite selbst, also nicht der der Entwicklerplattform. Hier melden Sie sich nun mit den Zugangsdaten des eingangs erstellten (oder bereits vorhandenen) ebay-Benutzers an, in dessen Namen die App auf ebay zugreifen soll.

Im folgenden Dialog klicken Sie noch auf I agree und erhalten dann eine Seite später Zugriff auf Ihren User Token, mit dem Sie im Namen des angegebenen ebay-Benutzerkontos über Ihre App auf ebay zugreifen (s. Bild 8). Der Token ist die recht lange, kryptische Zeichenfolge, die Sie für folgende Anwendungszwecke immer komplett benötigen.

Registrierung eines Sandbox-Users

Bild 7: Registrierung eines Sandbox-Users

Damit haben Sie alle Daten zusammen, die Sie für den Zugriff von einer Access-Datenbankanwendung auf ebay benötigen. Nun erstellen wir die Access-Anwendung selbst und programmieren eine kleine Benutzeroberfläche sowie den Code für den Zugriff auf die ebay-Schnittstelle per XML.

Sandbox-User anlegen

Das Anlegen eines Sandbox-Users erledigen Sie ebenfalls vom obigen Dialog aus. Dort wählen Sie unter Environment die Option Sandbox und finden unter der Schaltfläche Sign in to Sandbox den Link Register a new Sandbox user vor. Der Dialog hier sieht natürlich anders aus als der zum Registrieren eines „echten“ ebay-Benutzers (s. Bild 7). Hier sind nur wenige Informationen nötig, dafür aber auch einige, die Sie bei der herkömmlichen Registrierung nicht erhalten. Wichtig für Entwickler, die gegebenenfalls eine App für den Zugriff auf andere als die deutsche ebay-Seite bauen wollen, ist die Option Registration Site. Hier können Sie auch United States (US), Motors oder andere Länder auswählen. Diese Option werden Sie später in der Tabelle tblOptionen im Feld SiteID vorfinden.

Dialog mit dem fertigen User Token

Bild 8: Dialog mit dem fertigen User Token

Merken Sie sich, dass der Benutzername des Sandbox-Users mit TESTUSER_ beginnt.

Tabelle zum Speichern der Accountdaten

Nun haben wir bereits einige Daten, die wir der Developer-Seite von ebay entnehmen und in unserer Anwendung speichern wollen – die DevID, AppID, CertID und den Token jeweils für einen Produktiv- und einen Sandbox-Account. Dazu legen wir eine Tabelle namens tblOptions an, die im Entwurf wie in Bild 9 aussieht.

Tabellen zum Speichern der Optionen

Bild 9: Tabellen zum Speichern der Optionen

Neben den Account-Daten nimmt die Tabelle noch einige weitere Informationen auf. Dazu gehört etwa ein Ja/Nein-Feld namens Sandbox, das festlegt, ob Sie gerade den Sandbox- oder den Produktiv-Account für den Zugriff über die Anwendung nutzen wollen.

Weitere Felder legen allgemeine Eigenschaften für den Zugriff auf die ebay-Plattform fest, zum Beispiel um zu definieren, wie diese auf die übergabe fehlerhafter XML-Elemente in Anfragen reagieren soll, in welcher Sprache Fehlermeldungen auszugeben sind, in welcher Version die XML-Anfragen formuliert sind, auf welche ebay-Seite zugegriffen werden soll und welche URLs dazu verwendet werden – Letzteres jeweils wieder für den Sandbox- und den Production-Betrieb.

Und auch das Land, in dessen Kontext die Abfrage abgesetzt wird, und die Währung benötigen wir später zum Zusammenstellen der Anfragen.

Formular zum Bearbeiten der Einstellungen

Damit Sie die Einstellungen komfortabel bearbeiten können, legen wir ein passendes Formular namens frmOptionen an (s. Bild 10). Es enthält die Tabelle tblOptionen als Datenherkunft und zeigt alle Felder dieser Tabelle an – aufgeteilt in verschiedene Bereiche.

Formular für die Eingabe der Optionen

Bild 10: Formular für die Eingabe der Optionen

Mit dem Kontrollkästchen, das an das Feld Sandbox gebunden ist, legen Sie fest, ob Sie gerade mit den Sandbox- oder den Produktiv-Daten arbeiten möchten.

Je nach Auswahl werden zur besseren Kennzeichnung die nicht verwendeten Elemente in den Bereichen Sandbox-Account beziehungsweise Production-Account deaktiviert. Wenn Sie nun die Informationen von der ebay-Developer-Webseite in die entsprechenden Felder des Formulars übertragen, sind wichtige Voraussetzungen für den Zugriff schon einmal gegeben.

Anschließend schauen wir und die übrigen benötigten Werte an:

  • WarningLevel: Stellen wir auf High ein, damit wir auch Meldungen erhalten, wenn wir veraltete oder ungültige Elemente in unseren XML-Anfragen verwenden. Dies sollten Sie für den Produktivzugriff mit vielen Anfragen auf Low einstellen.
  • ErrorLanguage: Sprache, in der Fehlermeldungen ausgegeben werden. de_DE wäre sicher komfortabel, um schnell alles zu verstehen, aber meist hilft das nicht weiter und Sie müssen nach Möglichkeiten für das Beheben von Fehlern googeln. Da es wesentlich mehr englischsprachige Quellen zu diesem Thema gibt, ist also en_US die bessere Wahl.
  • Item_Country: Code aus zwei Buchstaben, der angibt, in welchem Land der Benutzer registriert ist – in unserem Fall also DE, AT oder CH (weitere siehe http://developer.ebay.com/devzone/xml/docs/reference/ebay/types/CountryCodeType.html).
  • Item_Currency: Code aus drei Buchstaben, der die Angebotswährung angibt, also etwa EUR (weitere Möglichkeiten hier: http://developer.ebay.com/devzone/xml/docs/reference/ebay/types/CurrencyCodeType.html).
  • SiteID: ebay-Seite, auf die zugegriffen werden soll. Hier gibt es die verschiedenen nationalen Seiten, aber auch spezielle Seiten wie Motors. Für Deutschland 77, österreich 16, Schweiz 193 – weitere siehe hier: http://developer.ebay.com/devzone/xml/docs/reference/ebay/extra/AddItm.Rqst.Itm.St.html.
  • Version: ebay wird ständig weiterentwickelt, und somit auch die Programmierschnittstelle. Mit der Versionsnummer geben Sie an, gegen welche Schnittstelle Sie programmieren. Die Schnittstelle darf nicht älter als 18 Monate sein. Den Plan für die niedrigste aktuell unterstützte Version finden Sie hier: http://developer.ebay.com/devzone/xml/docs/HowTo/eBayWS/eBaySchemaVersioning.html#VersionSupportSchedule
  • Vers.Categories: Version der Kategorie-Daten

Verschiedene APIs

ebay bietet verschiedene Programmierschnittstellen an, die Sie mit entsprechenden XML-Anfragen aufrufen können. In diesem Artikel schauen wir uns zwei davon an: die Shopping-API, die den Zugriff auf angebotene Artikel erlaubt, sowie die Trading-API, mit der Sie selbst Artikel einstellen und alle weiteren Aufgaben erledigen können, die mit dem Handeln auf der ebay-Plattform zu tun haben.

Shopping-API: Artikel suchen

Die Shopping-API erlaubt beispielsweise das Suchen nach Artikeln. Um dies zu testen, wollen wir die gefundenen Artikel in einer Tabelle speichern, die wie in Bild 11 aussieht.

Tabelle zum Speichern von Suchergebnissen

Bild 11: Tabelle zum Speichern von Suchergebnissen

Das Formular zum Eingeben des Suchbegriffes und zur Ausgabe der Suchergebnisse besteht aus Haupt- und Unterformular. Das Unterformular verwendet die Tabelle tblSuchergebnisse als Datenherkunft und zeigt die drei Felder Artikel und Preis an (s. Bild 12). Außerdem stellen wir die Eigenschaft Standardansicht auf den Wert Datenblatt ein.

Unterformular zur Anzeige der Suchergebnisse

Bild 12: Unterformular zur Anzeige der Suchergebnisse

Das Hauptformular enthält logischerweise das Unterformular. Außerdem soll es drei Steuerelemente zur Festlegung der Suchkriterien bieten:

  • txtSuchbegriff: Dient zur Eingabe des Suchbegriffs.
  • cboSortierung: Erwartet die Angabe einer Sortierung. Enthält eine Wertliste mit folgender Datensatzherkunft (Herkunftstyp auf Wertliste einstellen): „BestMatch“;“Beste Treffer“;“CurrentBid“;“Ak-tuel-les Gebot“;“EndTime“;“Angebotsende“
  • txtAnzahlTreffer: Angabe der Anzahl der Suchergebnisse, welche die Anfrage zurückliefern soll.

Da die Parameter möglicherweise beim nächsten Aufruf nochmals verwendet werden sollen, wollen wir diese auch in der Tabelle tblOptionen speichern.

Dazu fügen Sie dieser die drei Felder Sortierung, AnzahlTreffer und Suchbegriff hinzu und binden erst das Formular frmArtikelsuche über die Eigenschaft Datenherkunft an die Tabelle tblOptionen und dann die drei Steuerelemente des Formulars an die neu hinzugefügten Felder.

Die Eigenschaften Datensatzmarkierer, Navigationsschaltflächen, Trennlinien und Bildlaufleisten stellen Sie für das Hauptformular auf den Wert Nein, die Eigenschaft Automatisch zentrieren auf Ja ein.

Wir fügen dem Formular außerdem drei Schaltflächen hinzu: Die erste startet die Suche und heißt cmdSuchen, die zweite soll den aktuell markierten Eintrag im Unterformular bei ebay öffnen und heißt cmdBeiEbayAnsehen und die dritte schließt das Formular (cmdOK). Das Formular sieht im Entwurf wie in Bild 13 aus.

Hauptformular für die Suche nach ebay-Artikeln

Bild 13: Hauptformular für die Suche nach ebay-Artikeln

Suche programmieren

Nun brauchen wir nur noch ein wenig VBA-Code, der uns aus den Angaben in den drei Steuerelementen eine XML-Anfrage zusammenstellt, diese an ebay schickt und das Ergebnis in die Tabelle tblSuchergebnisse schreibt.

Den Start macht die Schaltfläche cmdSuche, über die wir die Suche aufrufen. Die für das Ereignis Beim Klicken hinterlegte Ereignisprozedur finden Sie in Listing 1.

Private Sub cmdSuchen_Click()
     Dim db As DAO.Database
     Dim strSuchbegriffe As String
     Set db = CurrentDb
     db.Execute "DELETE FROM tblSuchergebnisse"
     strSuchbegriffe = Nz(Me!txtSuchbegriff)
     If Len(strSuchbegriffe) = 0 Then
         MsgBox "Bitte geben Sie einen Suchbegriff ein."
         Exit Sub
     End If
     FindItemsAdvanced
     Me!sfmSuchergebnis.Form.Requery
End Sub

Sie haben das Ende des frei verfügbaren Textes erreicht. Möchten Sie ...

Workplace

Jahresabonnement TestzugangOder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

Schreibe einen Kommentar