2011-12-22 11 views
7

Próbuję utworzyć małą aplikację, która współdziała z interfejsem API produktu Amazon (uzyskaj ceny artykułów itd.).Czy istnieje aktualna próbka C# dla interfejsu API produktu Amazon?

Niestety wszystkie próbki C# do interakcji z usługą Amazon WCF, którą znalazłem do tej pory są nieaktualne. Wiem, że Amazon zdecydował, że każde zgłoszenie serwisowe musi być podpisane osobistym accessKeyId i secretKey, więc wszystkie minimalne próbki kodu, które są starsze niż 2009 (myślę, że dokonali zmiany w 2009 roku) są bezużyteczne. Oficjalna dokumentacja Amazon jest dla mnie bezużyteczna, ponieważ nie dostarcza niezbędnych informacji.

Mam również w Google dwa samouczki, w jaki sposób uzyskać dostęp do interfejsu API, a następujące wyniki nie zawierają żadnych wyników wyszukiwania dla żadnego wyniku wyszukiwania lub po prostu wartości NULL.

Czy jest dostępna aktualna (działająca) minimalna próbka?

+0

wierzę, że dodaje się nadal działa http://flyingpies.wordpress.com/2009/08/01/17/ –

+0

Nope to nie. Próbka zgłasza wyjątki odwołań zerowych, ponieważ większość właściwości obiektu odpowiedzi ma wartość null. Dziękuję za wysiłek, ale – citronas

+1

Właśnie użyłem tego kodu, aby odpowiedzieć na podobne pytanie. OP miał taki sam problem jak teraz. Obecnie * uważam *, że może wystąpić problem z nowym wymaganiem tagu powiązanego, który nie wpłynie na moje konto do lutego, ale wpłynie na wszystkie nowe konta. Oczywiście mogę być niepoprawny, ale być może powinieneś rzucić okiem na to pytanie/odpowiedź w dowolny sposób. http://stackoverflow.com/a/8143122/843318 –

Odpowiedz

2

W końcu znalazłem rozwiązanie na podstawie opublikowanego tutaj komentarza: http://www.falconwebtech.com/post/2010/06/14/Using-WCF-and-SOAP-to-Send-Amazon-Product-Advertising-API-Signed-Requests.aspx To jest również adres URL, pod którym pobrałem kod, który przygotowałem.

Nie przekazałem mojego "Twojego unikalnego identyfikatora współpracowników", którego nie miałem nawet do chwili obecnej. Można go pobrać tutaj: https://affiliate-program.amazon.com/

Dodaj

itemSearch.AssociateTag = "YourAssociateID"; 

przed amazonClient.ItemSearch(itemSearch).

Działa jak zaklęcie

1

, jeśli powyższe rozwiązanie nadal nie działa.

próbować ten jeden .. (używam microsoft visual studio 2010)

pobrać przykładowy kod na http://www.falconwebtech.com/post/2010/06/14/Using-WCF-and-SOAP-to-Send-Amazon-Product-Advertising-API-Signed-Requests.aspx

musimy zaktualizować odniesień usług sprawiają, że niewielkie zmiany w app.config, Program.cs, i reference.cs.

app.config:
(1.)
znacznik appSettings; przypisać accessKeyId i tajny klucz wartość, dodać
<add key="associateTag" value="yourAssociateTag" />.
(2.) zachowań tag -> tag endpointBehaviors -> tag zachowanie -> tag signingBehavior; przypisz wartość accessKeyId i secretKey.
(3.) tag powiązań -> basicHttpBinding tag; (opcjonalnie) usuń tag wiążący z wyjątkiem AWSECommerceServiceBindingNoTransport i AWSECommerceServiceBindingTransport.
(4.) znacznik klienta;
usunąć znacznik punktu końcowego oprócz AWSECommerceServiceBindingTransport.

Program.cs:
dodać itemSearch.AssociateTag = ConfigurationManager.AppSettings [ "associateTag"]; przed odpowiedzią ItemSearchResponse = amazonClient.ItemSearch (itemSearch);

reference.cs: (otwarty plik w folderze za pomocą odniesień usług visual studio)
zmiana prywatny ImageSet [] [] imageSetsField; do prywatnego ImageSet [] imageSetsField;
zmiana publiczne ImageSet [] [] ImageSets {...} do publicznego ImageSet [] ImageSets {...}

wreszcie możemy uruchomić nasz program i będzie działać. Powodzenia ..

nb: nie będzie 1 ostrzeżenie (nieprawidłowy element podrzędny podpisanie zachowanie), myślę, że możemy je zignorować, lub jeśli masz jakieś rozwiązanie proszę podzielić .. ^^ v ..

+0

Link jest martwy od 2016 roku. Dlatego prosimy ludzi, aby zamieszczali odpowiedzi, a nie tylko linki do odpowiedzi. –

3

I odkryli projekt up-to-date, kod jest dostępny na github Nager.AmazonProductAdvertising

Nuget

PM> install-package Nager.AmazonProductAdvertising 

Przykład

var authentication = new AmazonAuthentication(); 
authentication.AccessKey = "accesskey"; 
authentication.SecretKey = "secretkey"; 

var wrapper = new AmazonWrapper(authentication, AmazonEndpoint.DE, "YourAssociateID"); 
var result = wrapper.Lookup("B0037X9N5U"); 
Powiązane problemy