【问题标题】:What does 'HTTP Response: 403 Forbidden' mean when trying to access Amazon's API?尝试访问 Amazon 的 API 时,“HTTP 响应:403 Forbidden”是什么意思?
【发布时间】:2015-06-25 22:41:47
【问题描述】:

我正在构建一个简单的 Ruby on Rails 应用程序并使用 Amazon Product Advertising API (amazon-ecs) gem 文档。现在我只是想得到亚马逊的回应,我收到了 403 Forbidden 错误。这是我到目前为止的以下代码:

Amazon::Ecs.options = {
  :AWS_access_key_id => '[myaccesskey]',       
  :AWS_secret_key => '[mysecretkey]'
}


res = Amazon::Ecs.item_search('soccer books')
puts res.total_items

期望看到一个包含响应数的整数,但代码停止运行并给我一个错误。

我完全按照文档进行,所以我不确定我在这里做错了什么。

【问题讨论】:

  • 简而言之,这就是正在发生的事情:httpstatusdogs.com/403-forbidden ;)。正如照片上的标题所说:身份验证不会有任何区别。所以我非常怀疑它与身份验证有什么关系。
  • @David 我能做些什么来解决这个问题?
  • 通过查看 github 存储库,它希望您指定一个 associate_tag ` :associate_tag => '[your associate tag]'`
  • @David 我也注意到了这一点并添加了 associates 标签,但仍然遇到同样的错误。只是希望有更多关于调试的文档。
  • @David 它仍然可能是一个身份验证问题。 HTTP 403 通常与身份验证无关,只是服务器没有请求 HTTP 身份验证,就像 401 一样。AWS 从不使用 HTTP 身份验证,无效凭据通常会导致 403 . 通常有一个 xml 响应体,它给出了更多的细节,但是很多用户不知道如何查看它,或者如何访问它。

标签: ruby-on-rails ruby amazon-web-services amazon-product-api


【解决方案1】:

根据文档:

# Set the default options; options will be camelized and converted to REST request parameters.
# associate_tag and AWS_access_key_id are required options, associate_tag is required option
# since API version 2011-08-01. 
#
# To sign your request, include AWS_secret_key. 

所以看起来你应该只添加associate_tag 选项,因为它是必需的选项。

更多关于关联标签:http://docs.aws.amazon.com/AWSECommerceService/latest/DG/AssociateTag.html

【讨论】:

  • 即使我添加了关联标签,它仍然给我同样的错误,不知道为什么我会收到这个错误。
猜你喜欢
  • 1970-01-01
  • 2013-09-09
  • 2019-07-18
  • 1970-01-01
  • 2011-03-18
  • 2012-01-18
  • 2019-12-21
  • 2022-11-01
相关资源
最近更新 更多