亚马逊产品 API 是不是有最新的 c# 示例?

Posted

技术标签:

【中文标题】亚马逊产品 API 是不是有最新的 c# 示例?【英文标题】:Is there an up-to-date c# sample for the Amazon product API?亚马逊产品 API 是否有最新的 c# 示例? 【发布时间】:2012-01-26 06:12:39 【问题描述】:

我正在尝试创建一个与亚马逊产品 API 交互的小应用程序(获取文章价格等)

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

我还在谷歌上搜索了两个关于如何访问 API 的教程,遵循这些教程只会导致没有任何搜索结果的搜索结果或只是 null。

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

【问题讨论】:

我相信以下方法仍然有效flyingpies.wordpress.com/2009/08/01/17 不,不是。由于响应对象的大多数属性为空,该示例引发空引用异常。感谢您的努力 我最近刚刚使用该代码回答了一个类似的问题。那里的 OP 与您现在遇到的问题相同。我现在认为新的关联标签要求可能存在问题,该问题在 2 月份之前不会影响我的帐户,但会影响任何新帐户。当然我可能是不正确的,但也许你应该看看那个问题/回答任何方式。 ***.com/a/8143122/843318 我为此 API 示例编译了一个修复程序。请在这里找到它:forums.aws.amazon.com/message.jspa?messageID=440527#440527 【参考方案1】:

所以,我终于找到了解决方案,基于此处发布的评论: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】:

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

nuget

PM> install-package Nager.AmazonProductAdvertising

示例

var authentication = new AmazonAuthentication("accesskey", "secretkey");
var client = new AmazonProductAdvertisingClient(authentication, AmazonEndpoint.US, "YourAssociateID");
var result = await client.GetItemsAsync("B0037X9N5U");

【讨论】:

@LiakatHossain wrapper.ErrorReceived += (errorResonse) => System.Diagnostics.Debug.WriteLine(errorResonse.Error.Message); ; 你这里有错误响应吗?【参考方案3】:

如果上面的解决方案仍然不起作用。

试试这个..(我使用 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.) 行为标签 -> 端点行为标签 -> 行为标签 -> 签名行为标签; 分配 accessKeyId 和 secretKey 值。(3.) 绑定标签 -> basicHttpBinding 标签; (可选的) 删除除 AWSECommerceServiceBindingNoTransport 之外的绑定标签 和 AWSECommerceServiceBindingTransport。(4.) 客户端标签; 删除 AWSECommerceServiceBindingTransport 以外的端点标签。

program.cs: 添加 itemSearch.AssociateTag = ConfigurationManager.AppSettings["associateTag"];在 ItemSearchResponse 响应之前 = amazonClient.ItemSearch(itemSearch);

reference.cs:(使用 Visual Studio 在服务引用文件夹中打开文件)更改 private ImageSet[][] imageSetsField;到私有 ImageSet[] imageSetsField;更改 public ImageSet[][] ImageSets ... 到 public ImageSet[] ImageSets ...

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

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

【讨论】:

链接已于 2016 年失效。这就是为什么我们要求人们发布答案,而不仅仅是指向答案的链接。

以上是关于亚马逊产品 API 是不是有最新的 c# 示例?的主要内容,如果未能解决你的问题,请参考以下文章

亚马逊视频点播 API

对亚马逊产品广告 API 的 Java REST 请求失败

亚马逊产品广告API ItemSearch返回空

亚马逊是不是提供 API 用于返回搜索词的产品信息?

亚马逊产品广告 API - 获得评论排名

亚马逊产品广告 api 获取带有优惠的产品