【问题标题】:Access to requested resource is denied 403 SP-API AMAZON - C#访问请求的资源被拒绝 403 SP-API AMAZON - C#
【发布时间】:2021-02-10 01:40:39
【问题描述】:

调用新的 SP-API AMAZON 时出现问题。我使用的是 Amazon 提供的 C# 库。

https://github.com/amzn/selling-partner-api-models/tree/main/clients/sellingpartner-api-aa-csharp!

资源接口:https://sandbox.sellingpartnerapi-na.amazon.com/orders/v0/orders

{
    "errors": [
        {
            "message": "Access to requested resource is denied.",
            "code": "Unauthorized",
            "details": ""
        }
    ]
}

【问题讨论】:

  • 您有凭据吗?请参阅以下内容:docs.aws.amazon.com/AWSEC2/latest/APIReference/…
  • 是的,我有一个凭据,访问令牌。
  • 使用上面测试代码的链接来解决问题。这是一项测试:github.com/amzn/selling-partner-api-models/blob/main/clients/…
  • 嘿@IsraelT 关于这个话题有什么消息吗?我在同一点。我可以成功生成 accessTokens,但是在发送任何 API_Request 时,我收到的消息与原始问题中显示的相同。
  • 你解决了这个未经授权的访问吗?我也收到此消息,无法从亚马逊获得成功响应。

标签: c# amazon


【解决方案1】:

我遇到了同样的错误,经过几天的努力,我找到了解决方案,希望对其他人有所帮助。

我遵循Selling Partner API Developer Guide 中的每一步,但是,在亚马逊卖家中心中创建应用程序时,我使用了用户 ARN。这是我的错误。为了解决这个问题,我使用 Rol ARN 而不是 User ARN 创建了一个新应用。

像这样:

【讨论】:

  • 也试过了,但对我们不起作用。你有一个活跃的亚马逊卖家账户吗?在我们的例子中,我们只有 MWS 账户(卖家账户处于非活动状态)
  • 是的,我必须创建一个卖家账户。
  • 谢谢巴勃罗!我很沮丧,但这有帮助。
  • @Pablo 你是英雄
【解决方案2】:

看起来文档上关于添加角色的指导似乎不起作用(或者我以某种方式搞砸了)。解决方法是根据 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

【讨论】:

  • 这个解决方案在我的情况下也不起作用
  • 这仅仅是因为您在创建新的应用程序客户端时使用了用户 ARN 而不是角色 ARN 吗?
  • @Jarad 是的,我使用了用户 ARN
【解决方案3】:

您必须检查以下标头,由于其中任何一个标头的值不正确,都可能发生此错误。

  1. 您需要在标头中发送 x-amz-access-token,即仅在通过令牌 API 生成后一小时有效。
  2. 您还必须在标头中传递 授权,如果您在授权中选择 AWS 签名类型并设置以下密钥(访问密钥、秘密密钥、Aws 区域和服务名称)。

还要测试沙盒 get orders API:URL 值应该是这个 https://sandbox.sellingpartnerapi-eu.amazon.com/orders/v0/orders?CreatedAfter=TEST_CASE_200&MarketplaceIds=XXXX

沙盒 API 只能按照提供的沙盒行为工作。

【讨论】:

    【解决方案4】:

    只是把它扔在那里,我多次遇到这个错误,我 100% 确定一切都是正确的,最后只是我使用的是帖子而不是获取。眼睛很累,但我终于抓住了它,它奏效了。

    【讨论】:

      【解决方案5】:

      除了上面提到的答案之外,对我有用的是确保请求针对的是正确的区域。该应用程序是在北美创建的,我最初的目标是欧盟,这给了我未经授权的访问权限。

      【讨论】:

        猜你喜欢
        • 2022-08-05
        • 1970-01-01
        • 2017-06-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-07
        相关资源
        最近更新 更多