是否有适用于Amazon产品API的最新c#示例?

时间:2011-12-22 16:13:41

标签: c# asp.net amazon

我正在尝试创建一个与Amazon的Product API交互的小应用程序(获取文章的价格,等等)

不幸的是,到目前为止我发现的与Amazon WCF服务交互的所有C#示例都已过时。 我知道亚马逊决定每个服务调用必须使用个人accessKeyId和secretKey进行签名,因此所有比2009年更早的代码样本(我认为他们在2009年进行了更改)都是无用的。官方的亚马逊文档对我来说也没用,因为它没有提供必要的信息。

我还搜索了两个关于如何访问API的教程,并且这些教程只会导致任何搜索范围都没有搜索结果,或者只是null。

是否有可用的最新(工作!!)最小样本?

3 个答案:

答案 0 :(得分:3)

我找到了一个最新的项目,代码可以在github上找到 Nager.AmazonProductAdvertising

<强>的NuGet

PM> install-package Nager.AmazonProductAdvertising

示例

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

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

答案 1 :(得分:2)

所以,我终于根据此处发布的评论找到了解决方案:http://www.falconwebtech.com/post/2010/06/14/Using-WCF-and-SOAP-to-Send-Amazon-Product-Advertising-API-Signed-Requests.aspx 这也是URL,我下载了我工作的代码。

我没有通过我的“你独特的员工ID”,直到现在我都没有。你可以在这里得到它:https://affiliate-program.amazon.com/

添加

itemSearch.AssociateTag = "YourAssociateID";
amazonClient.ItemSearch(itemSearch)之前

像魅力一样工作

答案 2 :(得分:1)

如果上述解决方案仍无效。

试试这个......(我使用的是microsoft visual studio 2010)

下载http://www.falconwebtech.com/post/2010/06/14/Using-WCF-and-SOAP-to-Send-Amazon-Product-Advertising-API-Signed-Requests.aspx

上的示例代码

我们需要更新服务引用,在app.config,program.cs和reference.cs上做一点改动。

<强>的app.config:
(1。)
appSettings标签;   分配accessKeyId和secretKey值,   添加
 <add key="associateTag" value="yourAssociateTag" />.
(2。)行为标记 - &gt; endpointBehaviors标记 - &gt;行为标签 - &gt; signingBehavior标签;   分配accessKeyId和secretKey值 (3。)绑定标记 - &gt; basicHttpBinding标签; (可选的)   删除除AWSECommerceServiceBindingNoTransport之外的绑定标记   和AWSECommerceServiceBindingTransport (4。)客户端代码;
  删除除AWSECommerceServiceBindingTransport之外的端点标记。

<强>的Program.cs:
  add itemSearch.AssociateTag = ConfigurationManager.AppSettings [“associateTag”];在ItemSearchResponse response = amazonClient.ItemSearch(itemSearch);

之前

reference.cs:(使用visual studio在服务引用文件夹中打开文件)
  更改私有ImageSet [] [] imageSetsField;私人ImageSet [] imageSetsField;
  更改 public ImageSet [] [] ImageSets {...}到公共ImageSet [] ImageSets {...}

最后我们可以运行我们的程序,它会工作。祝你好运..

nb:会有1个警告(无效的子元素签名行为),我想我们可以忽略它,或者如果你有任何解决方案请分享.. ^^ v ..