Amazon Product Advertising API – Eine Odyssee in 3 Teilen (Teil 1)

Es ist fast wie Weihnachten. Alle Jahre wieder denke ich mir: „Hmm. Eigentlich könnte ich für meine Programme doch die Amazon API verwenden“. Alle Jahre wieder ärgere ich mich dann drei Tage mit den verschiedenen Webservices und Diensten von Amazon, bis ich irgendwann genervt aufgebe…

Auch dieses Jahr stand dieses Projekt wieder auf dem Plan. Auf die Idee kam ich über den ASIN to EAN Converter. Der Entwickler hat seinen Sourcecode veröffentlich und da habe ich gesehen, dass der es auch geschafft hat die Amazon API zu verwenden. Ich denke mir dann immer: Wenn das andere können, kann ich das auch. Also: Los geht’s.

Am ersten Tag hab‘ ich mir erst mal angesehen, wie der ASIN to EAN Converter so arbeitet. Alles in PHP. Funktioniert aber gut. Ich will aber nicht PHP programmieren. Also hab‘ ich mich auf die Suche nach einigen .NET Beispielen gemacht. Mit etwas Glück findet man sogar ein paar Blogs, die sich mit diesem Thema beschäftigen. Also hab‘ ich gleich mal ein Beispielprogramm angelegt. Nach einigen Minuten konnte ich immerhin schon den Webservice ansprechen. Jedoch wurde die Anfrage immer wieder zurückgewiesen. Der Grund war schnell gefunden – man muss im SOAP-Header zusätzliche Informationen mitliefern. Hmm. Einfacher gesagt als getan. Wenn man den Amazon Webservice über WCF anspricht gibt es eine entsprechende Klasse dafür. Möchte man aber das Ganze nur über einen einfachen Webverweis nutzen, so fährt man schnell gegen eine Wand.

Tag ein war damit gelaufen. Zusammengefasst konnte ich aber sagen: Grundsätzlich ist der Zugriff auf die API möglich und es gibt theoretisch drei Möglichkeiten dafür.

Möglichkeit 1: Man nutzt die Klassen WebRequest und WebResponse. Nicht der schönste Weg. Das sieht dann schnell aus wie in PHP.
Möglichkeit 2: Man nutzt eine ServiceReference und greift über WCF auf den Webservice zu. Wenn man das nutzen möchte braucht man allerdings die Klasse zum manipulieren der Header (oder man weiß wie man das selber programmiert)
Möglichkeit 3: Man nutzt einen Webverweis und kann somit den Webservice nutzen. Jedoch tut man sich hier aber schwer die Header zu manipulieren.

Leider war Möglichkeit 3 die, die ich bevorzugt hätte. Ein weiterer Punkt störte mich aber an einer reinen .NET Lösung: Man brauchst sowohl den Access Key als auch den Secret Access Key. In .NET ist es aber schwierig etwas ‚geheim‘ zu halten. Daher blieb eigentlich nur noch eine Möglichkeit…

Schreibe einen Kommentar

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