2011-12-22 25 views
7

Tôi đang cố gắng tạo một ứng dụng nhỏ tương tác với API sản phẩm của Amazon (nhận giá bài viết, v.v.)Có mẫu C# cập nhật nào cho API sản phẩm Amazon không?

Thật không may tất cả các mẫu C# cho tương tác với dịch vụ WCF Amazon tôi đã tìm thấy cho đến nay đã lỗi thời. Tôi biết rằng Amazon quyết định rằng mỗi cuộc gọi dịch vụ phải được ký với một accessKeyId và secretKey cá nhân, vì vậy tất cả các mẫu mã tối thiểu cũ hơn 2009 (tôi nghĩ rằng họ đã thực hiện thay đổi trong năm 2009) là vô ích. Tài liệu chính thức của Amazon cũng vô dụng đối với tôi, vì nó không cung cấp thông tin cần thiết.

Tôi cũng đã googled hai hướng dẫn về cách truy cập API và sau những kết quả này không có kết quả tìm kiếm cho bất kỳ tìm kiếm nào hoặc chỉ đơn giản là rỗng.

Có mẫu tối thiểu (hoạt động !!) tối thiểu ở đâu đó có sẵn không?

+0

Tôi tin rằng những điều sau đây vẫn hoạt động http://flyingpies.wordpress.com/2009/08/01/17/ –

+0

Nope là không. Các mẫu ném ngoại lệ tham chiếu null do hầu hết các thuộc tính của đối tượng phản hồi là null. Cảm ơn nỗ lực của bạn mặc dù – citronas

+1

Tôi vừa mới sử dụng mã đó để trả lời một câu hỏi tương tự. OP có vấn đề tương tự như bạn đang gặp phải. Tôi * bây giờ * tin rằng có thể có vấn đề với yêu cầu thẻ liên kết mới sẽ không ảnh hưởng đến tài khoản của tôi cho đến tháng 2 nhưng sẽ ảnh hưởng đến bất kỳ tài khoản mới nào. Tất nhiên tôi có thể không đúng nhưng có lẽ bạn nên có một cái nhìn tại câu hỏi/trả lời bất kỳ cách nào. http://stackoverflow.com/a/8143122/843318 –

Trả lời

2

Vì vậy, cuối cùng tôi đã tìm thấy giải pháp dựa trên nhận xét được đăng tại đây: http://www.falconwebtech.com/post/2010/06/14/Using-WCF-and-SOAP-to-Send-Amazon-Product-Advertising-API-Signed-Requests.aspx Đây cũng là URL, nơi tôi tải xuống mã tôi đã làm việc.

Tôi đã không chuyển "ID cộng tác duy nhất" của mình mà tôi thậm chí không có cho đến bây giờ. Bạn có thể lấy nó ở đây: https://affiliate-program.amazon.com/

Thêm

itemSearch.AssociateTag = "YourAssociateID"; 

trước amazonClient.ItemSearch(itemSearch).

Works like a charm

1

nếu giải pháp trên vẫn sẽ không hoạt động.

thử này .. (tôi sử dụng microsoft visual studio 2010)

tải mã mẫu trên http://www.falconwebtech.com/post/2010/06/14/Using-WCF-and-SOAP-to-Send-Amazon-Product-Advertising-API-Signed-Requests.aspx

chúng ta cần phải cập nhật tài liệu tham khảo phục vụ, làm ít thay đổi ở app.config, program.cs, và reference.cs.

app.config:
(1.)
thẻ appSettings; gán accessKeyId và secretKey giá trị, thêm
<add key="associateTag" value="yourAssociateTag" />.
(2.) hành vi tag -> endpointBehaviors tag -> thẻ hành vi -> signingBehavior thẻ; gán giá trị accessKeyId và secretKey.
(3.) thẻ ràng buộc -> thẻ basicHttpBinding; (tùy chọn) xoá thẻ ràng buộc ngoại trừ AWSECommerceServiceBindingNoTransport và AWSECommerceServiceBindingTransport.
(4.) thẻ khách hàng;
xóa thẻ điểm cuối ngoại trừ AWSECommerceServiceBindingTransport.

program.cs:
thêm itemSearch.AssociateTag = ConfigurationManager.AppSettings [ "associateTag"]; trước ItemSearchResponse response = amazonClient.ItemSearch (itemSearch);

Reference.cs: (mở tập tin trong tài liệu tham khảo phục vụ folder sử dụng visual studio)
thay đổi ImageSet tin [] [] imageSetsField; tới ImageSet riêng [] imageSetsField;
thay đổi công ImageSet [] [] ImageSets {...} để ImageSet [] ImageSets công cộng {...}

cuối cùng chúng ta có thể chạy chương trình của chúng tôi và nó sẽ làm việc. chúc may mắn ..

nb: sẽ có 1 cảnh báo (phần tử con không hợp lệ hành vi ký), tôi nghĩ rằng chúng ta có thể bỏ qua nó, hoặc nếu bạn có bất kỳ giải pháp xin vui lòng chia sẻ .. ^^ v ..

+0

Liên kết đã qua đời vào năm 2016. Đây là lý do tại sao chúng tôi yêu cầu mọi người đăng câu trả lời chứ không chỉ liên kết đến câu trả lời. –

3

tôi đã tìm thấy một up-to-date dự án, mã có sẵn trên github Nager.AmazonProductAdvertising

NuGet

PM> install-package Nager.AmazonProductAdvertising 

Ví dụ

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

var wrapper = new AmazonWrapper(authentication, AmazonEndpoint.DE, "YourAssociateID"); 
var result = wrapper.Lookup("B0037X9N5U"); 
Các vấn đề liên quan