标签: amazon-product-api

fs.writeFile在promise,异步同步的东西中

我的代码需要一些帮助.我是nodejs的新手,并且遇到很多麻烦.我想做什么:

  • 1)使用亚马逊产品(ASIN)获取.txt
  • 2)使用amazon-product-api包获取所有产品

  • 3)将每个产品保存在.json文件中

我的代码不起作用.我想我搞砸了这个异步同步的东西 - 帮助我!

var amazon = require('amazon-product-api');
var fs = require('fs');

var client = amazon.createClient({
    awsId: "XXX",
    awsSecret: "XXX",
    awsTag: "888"
});

var array = fs.readFileSync('./test.txt').toString().split('\n');
for (var i = 1; i < array.length; i++) {
     var ASIN = array[i];

    return client.itemLookup({
            domain: 'webservices.amazon.de',
            responseGroup: 'Large',
            idType: 'ASIN',
            itemId: ASIN
        })
        .then(function(results) {
            fs.writeFile(ASIN + '.json', JSON.stringify(results), function(err) {
                if (err) {
                    console.log(err);
                } else {
                    console.log("JSON saved");
                }
            })

            return results;

        }).catch(function(err) { …
Run Code Online (Sandbox Code Playgroud)

synchronization amazon asynchronous node.js amazon-product-api

43
推荐指数
8
解决办法
6万
查看次数

获取Amazon Product Advertising API的所有优惠列表

我需要能够使用amazon API获取产品的所有报价列表.这是我发送的请求:

http://webservices.amazon.com/onca/xml?Service=AWSECommerceService&Operation=ItemLookup&SubscriptionId=&AssociateTag=&Version=2011-08-01&ItemId=B007IJQDQQ&IdType=ASIN&ResponseGroup=Offers&Condition=All&MerchantId=All
Run Code Online (Sandbox Code Playgroud)

这将返回以下优惠:

<Offers>
<TotalOffers>1</TotalOffers>
<TotalOfferPages>1</TotalOfferPages>
<MoreOffersUrl>
http://www.amazon.com/gp/offer-listing/B007IJQDQQ%3FSubscriptionId%3DAKIAJTZ6VROOTPJAPPWQ%26tag%3Damazoautom-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3DB007IJQDQQ
</MoreOffersUrl>
<Offer>
<OfferAttributes>
<Condition>New</Condition>
</OfferAttributes>
<OfferListing>
<OfferListingId>
TR5sygI0VR7cwy3Hg0DBHwgCWFnkqXLyCR70jjMhy1h8gWlEisKYt5cqDbS2Fu1SEqDtfBILdxYDziJdFzfsqMpPJkBqcYV3DFovHx1nXWRy9wHS6CFZXknBvsCo1bxYS%2BsxAeYrZHrS6g6aakEJQA%3D%3D
</OfferListingId>
<Price>
<Amount>375</Amount>
<CurrencyCode>USD</CurrencyCode>
<FormattedPrice>$3.75</FormattedPrice>
</Price>
<AmountSaved>
<PercentageSaved>56</PercentageSaved>
<Availability>Usually ships in 1-2 business days</Availability>
<AvailabilityAttributes>
<IsEligibleForSuperSaverShipping>0</IsEligibleForSuperSaverShipping>
</OfferListing>
</Offer>
</Offers>
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,它只返回1个报价,即使它说有3个新报价.有没有人知道如何获得所有优惠而不仅仅是最低价?商家ID ='ALL'不会执行此操作,也不会执行任何其他响应组,例如offerFull,offerSummary或​​offer.

amazon amazon-web-services amazon-product-api

24
推荐指数
1
解决办法
1万
查看次数

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

使用亚马逊API似乎不再可能获得产品的评论排名信息.检查此链接的说明是:

自2010年11月8日起,请求内容中仅返回iframe网址.

然而,使用params进行测试他们建议获得Iframe,但现在看来甚至Iframe都不再起作用了.因此,即使在"激励客户购买"一章中的最新API参考中,"评论"部分也完全缺失.

但是:由于我也非常感兴趣,如果它仍然可能以某种方式获得评论排名信息 - 甚至可能不使用亚马逊API而是竞争对手的API获取评论排名信息 - 我希望有人可以提供有关此主题的一些信息.

amazon amazon-web-services amazon-product-api

17
推荐指数
1
解决办法
1万
查看次数

是否可以通过IAM生成AWS访问密钥以与Product Advertising API一起使用?

我喜欢使用IAM(身份和访问管理)来创建具有特定用途的特定权限的用户/组.

Product Advertising API需要使用访问密钥(请求参数是AWSAccessKeyId),IAM可以生成访问密钥,但我没有看到让IAM用户/组只能访问Product Advertising API的方法.

任何人都知道这是否可以做到?或者你知道一个解决方法吗?

api amazon-web-services amazon-product-api amazon-iam

16
推荐指数
1
解决办法
3079
查看次数

亚马逊产品广告API:获得平均客户评级

使用亚马逊的网络服务获取任何产品信息时,是否有直接获得平均客户评级(1-5星级)的方法?以下是我正在使用的参数:

Service=AWSECommerceService
Version=2011-08-01
Operation=ItemSearch
SearchIndex=Books
Title=A Game of Thrones
ResponseGroup=Large
Run Code Online (Sandbox Code Playgroud)

我希望它的客户评分为4.5,评论总数为2177.但我在回复中得到以下内容.

<CustomerReviews><IFrameURL>http://www.amazon.com/reviews/iframe?...</IFrameURL></CustomerReviews>
Run Code Online (Sandbox Code Playgroud)

有没有办法获得整体客户评级,除了阅读<IFrameURL/>价值,为该评论页面发出另一个HTTP请求,然后屏幕抓取HTML?这种方法很脆弱,因为亚马逊可以轻松更改评论页面结构,这会破坏我的应用程序.

amazon-web-services amazon-product-api

14
推荐指数
2
解决办法
1万
查看次数

如何通过亚马逊的MWS API获取产品信息?

我正在尝试在亚马逊上自动添加和管理我们的产品.查看MWS API的API文档,看起来没有办法确定某个产品是否已被其他卖家添加到亚马逊,如果是,那么它的属性是什么.

我们正在为我们销售的所有产品构建新的产品数据库,并拥有专门针对亚马逊属性数据字段(ASIN等)的表格.如果产品信息已经在亚马逊上,我们希望通过API提取数据并将其存储到我们自己的数据库中.

如果您尝试通过CSV添加产品,该产品已经存在于亚马逊(和你的属性是不同的任何方式("M"!="中等"),您会收到和错误.在这种情况下你可以捎带现有的产品信息,只是上传CSV与你的价格和数量对特定ASIN/SKU/UPC.我们想废除上传CSV文件并再次,有我们为亚马逊自己的产品表的属性.

我是否还需要利用亚马逊的产品广告API来确定这一点,还是可以通过MWS来完成?

亚马逊API的文档并不是很精彩,而且尝试对其进行排序的速度很慢.

其他信息:我们正在与Ruby合作.

amazon amazon-product-api amazon-mws

14
推荐指数
1
解决办法
1万
查看次数

iOS中的亚马逊产品广告API签名

我正在尝试在我的iOS应用程序中访问亚马逊的产品广告API.创建签名似乎是一个艰难的部分.在本页面:

http://docs.amazonwebservices.com/AWSECommerceService/latest/DG/rest-signature.html

它说"使用SHA256哈希算法计算符合RFC 2104的HMAC".亚马逊还提供了一个java类来为您执行此操作:

http://docs.amazonwebservices.com/AWSECommerceService/latest/DG/AuthJavaSampleSig2.html

有人知道我如何在Objective-C中做到这一点吗?我查看了AWS iOS SDK,但它似乎没有包含Product Advertising API.

amazon objective-c amazon-web-services amazon-product-api ios

14
推荐指数
4
解决办法
3978
查看次数

如何获取亚马逊购物车的内容?

我一直在调查是否有可能以编程方式获取我的亚马逊购物篮中保存的项目列表.

他们的产品广告API提供了获取此处描述的愿望清单以及使用此处描述的远程购物车的方法.

但是,在亚马逊网站上存储的商品购物车被视为本地购物车,因此无法通过产品广告API访问.

根据最后一个链接:

与远程购物车相反的是本地购物车,这是顾客在www.amazon.com上购物时使用的购物车.它被认为是本地的,因为亚马逊托管购物网页以及购物车.产品广告API操作仅适用于远程购物车.

有没有人找到一种方法来获取"本地"购物车的内容,除了抓取HTML?

amazon amazon-product-api

12
推荐指数
1
解决办法
4386
查看次数

如何获得所有亚马逊类产品

如何从现有类别中获取所有亚马逊产品?

使用API​​,我可以浏览10页并获得每页10个产品.

该类别有502348件产品,我想把它们全部搞定.

这是我的代码:

Amazon Product Advertising API <?php ?>
$params = array(
        'Operation' => 'ItemSearch',
        'SearchIndex'=>'Electronics',
        //'BrowseNode'=>'281052',
        'ResponseGroup'=>'small',
        //'MerchantId' => 'All',
        //'Condition'=>'New',
        'ItemPage'=>'1471',
Run Code Online (Sandbox Code Playgroud)

php amazon soap-client amazon-web-services amazon-product-api

12
推荐指数
3
解决办法
2万
查看次数

Javascript:PHP的hash_hmac()与RAW BINARY输出的等价物?

我正在连接到亚马逊产品广告API,为了签署我的请求,我需要对HMAC-SHA256哈希的原始二进制输出进行base64编码.

hash_hmac的PHP文档中,第四个参数bool $raw_output控制输出是原始二进制数据(true)还是小写hexits(false).我的程序只需将该参数设置为true即可在PHP中运行.

但是,我现在正试图将其移植到Javascript.我尝试使用CryptoJS.HmacSHA256()函数,但它似乎返回小写的六角形.如何将其转换为二进制?

我根据CryptoJS文档尝试了以下内容,但两个输出都是相同的:

var hash = CryptoJS.HmacSHA256("hello", "key");
console.log(hash.toString());
console.log(hash.toString(CryptoJS.enc.Base64));
Run Code Online (Sandbox Code Playgroud)

javascript php binary base64 amazon-product-api

11
推荐指数
2
解决办法
2万
查看次数