亚马逊产品广告api节点js sdk请求节流问题

问题描述 投票:0回答:1

当从nodejs sdk调用亚马逊产品广告api时,我得到此错误作为响应。

Error calling PA-API 5.0!
Printing Full Error Object:
{
 "status": 429,
 "response": {
  "req": {
   "method": "POST",
   "url": "https://webservices.amazon.com/paapi5/getitems",
   "data": {
    "ItemIds": [
     "B075LRK2QK"
    ],
    "PartnerTag": "raassnabct-21",
    "PartnerType": "Associates",
    "Condition": "New",
    "Resources": [
     "Images.Primary.Medium"
    ]
   },
   "headers": {
    "user-agent": "paapi5-nodejs-sdk/1.0.0",
    "authorization": "AWS4-HMAC-SHA256 Credential=MY_KEY/20191215/us-east-1/ProductAdvertisingAPI/aws4_request, SignedHeaders=content-encoding;content-type;host;x-amz-date;x-amz-target, Signature=030b9f07a2336302a6d8855e216e602589960bf919dc9e700daac6155dcce1a2",
    "content-encoding": "amz-1.0",
    "content-type": "application/json; charset=utf-8",
    "host": "webservices.amazon.com",
    "x-amz-target": "com.amazon.paapi5.v1.ProductAdvertisingAPIv1.GetItems",
    "x-amz-date": "20191215T111055Z",
    "accept": "application/json"
   }
  },
  "header": {
   "server": "Server",
   "date": "Sun, 15 Dec 2019 11:10:54 GMT",
   "content-type": "application/json",
   "content-length": "193",
   "connection": "close",
   "x-amzn-requestid": "0ada8ea0-944f-47a2-bbef-acc0f5d984a9",
   "vary": "Accept-Encoding,X-Amzn-CDN-Cache,X-Amzn-AX-Treatment,User-Agent",
   "content-encoding": "gzip",
   "x-amz-rid": "JTD0DAVWEB1CMXK1F5BW"
  },
  "status": 429,
  "text": "{\"__type\":\"com.amazon.paapi5#TooManyRequestsException\",\"Errors\":[{\"Code\":\"TooManyRequests\",\"Message\":\"The request was denied due to request throttling. Please verify the number of requests made per second to the Amazon Product Advertising API.\"}]}"
 }
}
Status Code: 429
Error Object: "{\"__type\":\"com.amazon.paapi5#TooManyRequestsException\",\"Errors\":[{\"Code\":\"TooManyRequests\",\"Message\":\"The request was denied due to request throttling. Please verify the number of requests made per second to the Amazon Product Advertising API.\"}]}"

并且代码是

var ProductAdvertisingAPIv1 = require('./src/index');
var defaultClient = ProductAdvertisingAPIv1.ApiClient.instance;
defaultClient.accessKey = 'accessKey';
defaultClient.secretKey = 'secretKey';

defaultClient.host = 'webservices.amazon.com';
defaultClient.region = 'us-east-1';

var api = new ProductAdvertisingAPIv1.DefaultApi();
var getItemsRequest = new ProductAdvertisingAPIv1.GetItemsRequest();

getItemsRequest['PartnerTag'] = 'raassnacbt-21';
getItemsRequest['PartnerType'] = 'Associates';
getItemsRequest['ItemIds'] = ['B075LRK2QK'];
getItemsRequest['Condition'] = 'New';
getItemsRequest['Resources'] = ['Images.Primary.Medium', 'ItemInfo.Title', 'Offers.Listings.Price'];

function parseResponse(itemsResponseList) {
  var mappedResponse = {};
  for (var i in itemsResponseList) {
    mappedResponse[itemsResponseList[i]['ASIN']] = itemsResponseList[i];
  }
  return mappedResponse;
}

try {
  api.getItems(getItemsRequest, callback);
} catch (ex) {
  console.log("Exception: " + ex);
}

即使只发出一个请求,我也收到“太多请求”错误。还尝试在服务器上运行此命令,以防它与本地主机有关。没有手动修改,只是带有我的凭据的sdk代码。知道可能是什么问题吗?

node.js api xmlhttprequest amazon-product-api
1个回答
0
投票

这是人们在使用Amazon产品API时遇到的非常普遍的问题。亚马逊采用了非常不同的算法。它根据您通过亚马逊赚取的佣金分配API阈值/使用限制。一旦您分配的限制用完,您将收到此类错误。要解决此问题,请您的朋友通过您的会员链接购买。您将获得一些门槛。

© www.soinside.com 2019 - 2024. All rights reserved.