问题描述
调用新的SP-API AMAZON的问题。我正在使用Amazon提供的C#库。
https://github.com/amzn/selling-partner-api-models/tree/main/clients/sellingpartner-api-aa-csharp!
资源api:https://sandbox.sellingpartnerapi-na.amazon.com/orders/v0/orders
{
"errors": [
{
"message": "Access to requested resource is denied.","code": "Unauthorized","details": ""
}
]
}
解决方法
我遇到了同样的错误,经过几天的努力,我找到了我的解决方案,希望它可以帮助其他人。
我遵循了 Selling Partner API Developer Guide 中的每一步,但是,在亚马逊卖家中心中创建应用程序时,我使用了用户 ARN。这是我的错误。为了解决这个问题,我使用 Rol ARN 而不是用户 ARN 创建了一个新应用。
,我写了这篇博文,描述了成功的 Amazon SP-API 身份验证和身份验证流程的所有步骤。希望你能通过阅读获得一些见解。
https://marco-tibaldeschi.medium.com/amazon-sp-api-auth-auth-demystified-ab3bc746729b
,您必须检查以下标题,此错误可能是由于其中任何一个的值不正确造成的。
- 在标头中,您需要发送 x-amz-access-token,即仅在通过令牌 API 生成一小时后有效。
- 如果您在授权中选择 AWS 签名类型并设置以下密钥(访问密钥、秘密密钥、Aws 区域和服务名称)。
还要测试沙盒获取订单 API:URL 值应该是这个 https://sandbox.sellingpartnerapi-eu.amazon.com/orders/v0/orders?CreatedAfter=TEST_CASE_200&MarketplaceIds=XXXX
Sandbox API 将仅按照提供的沙箱行为工作。
,看起来关于添加角色的文档指南似乎不起作用(或者我以某种方式搞砸了)。解决方法是根据 phamanh195 建议直接向用户添加策略:
IAM 管理控制台 => 用户 => 选择用户 => 添加内联策略 => 单击 JSON 选项卡 => 添加以下内容:
{
"Version": "2012-10-17","Statement": [
{
"Effect": "Allow","Action": "execute-api:Invoke","Resource": "arn:aws:execute-api:::*"
}
]
}
感谢这不是最佳实践,但我现在可以访问。
附言我已删除该策略,它已默认返回到上面的授权错误。
参考下面在 github 上报告的问题:https://github.com/amzn/selling-partner-api-docs/issues/38
,只是把它扔在那里,我得到了很多次这个错误,我 100% 确定一切都是正确的,最后这只是我使用的是 post 而不是 get。疲惫的眼睛,但我终于抓住了它,它奏效了。