【发布时间】:2020-10-15 04:33:36
【问题描述】:
我正在使用 API 方法“直接调用销售伙伴 API”。
我正确地遵循了所有步骤:
- 使用 Amazon 访问令牌请求登录 - 此 API 正在成功运行并正在获取访问令牌。
- 构造一个 Selling Partner API URI - 之后,我使用 access_token 并将其传递给 options 标头 request-'x-amz-access-token'。
- 向 URI 添加标头
- 创建并签署您的请求
调用API后https://sellingpartnerapi-eu.amazon.com/vendor/orders/v1/purchaseOrders
我收到带有错误的签名响应-
The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method.
我的代码:-
let options = {
service: 'execute-api',
region:'eu-west-1',
method: 'GET',
url: 'https://sellingpartnerapi-eu.amazon.com/vendor/orders/v1/purchaseOrders/?includeDetails=true&createdBefore=2020-04-20T14:00:00-08:00&createdAfter=2020-04-14T00:00:00-08:00',
headers: {
'Content-Type': 'application/json',
'host':'sellingpartnerapi-eu.amazon.com',
'x-amz-access-token':access_token,
'x-amz-date': '20200604T061745Z',
'user-agent':'My App(Language=Node.js;Platform=Windows/10)'
}
}
let signedRequest = aws4.sign(options,
{
secretAccessKey: secretAccessKey,
accessKeyId: accessKeyId,
})
console.dir("signedRequest");
console.dir(signedRequest);
delete signedRequest.headers['Host']
delete signedRequest.headers['Content-Length']
request(awsres, function(err, res, body) {
console.dir("err");
console.dir(err);
console.dir("res");
console.dir(res.body);
});
【问题讨论】:
-
您能否分享更多详细信息。从最初的调查来看,您似乎没有提供 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY。
-
@Dipak 你有没有得到这个工作?