我正在尝试创建一个与Amazon的Product API交互的小应用程序(获取文章的价格,等等)
不幸的是,到目前为止我发现的与Amazon WCF服务交互的所有C#示例都已过时。 我知道亚马逊决定每个服务调用必须使用个人accessKeyId和secretKey进行签名,因此所有比2009年更早的代码样本(我认为他们在2009年进行了更改)都是无用的。官方的亚马逊文档对我来说也没用,因为它没有提供必要的信息。
我还搜索了两个关于如何访问API的教程,并且这些教程只会导致任何搜索范围都没有搜索结果,或者只是null。
是否有可用的最新(工作!!)最小样本?
答案 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)
上的示例代码我们需要更新服务引用,在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 ..