python-amazon-simple-product-api 通过 pythonanywhere 出现错误 400

Error 400 with python-amazon-simple-product-api via pythonanywhere

一天中的大部分时间我都在处理这个问题,但很长一段时间以来一直出现相同的错误 400。基本上,该应用程序的目标是从亚马逊推荐 url 中解析一本书的 ISBN,并将其用作从亚马逊产品广告 API 中提取图像的参考键。该网页是用 Python 3.4 和 Django 1.8 编写的。我在这里花了很长时间研究并决定使用 python-amazon-simple-product-api 因为它会使来自亚马逊的解析结果更容易一些。

答案如下:How to use Python Amazon Simple Product API to get price of a product

让它看起来很简单,但我还没有完全掌握它来成功查找产品。这是我的方法通常执行的操作的控制台打印输出,其中已经填写了正确的 ISBN:

>>> from amazon.api import AmazonAPI
>>> access_key='amazon-access-key'
>>> secret ='amazon-secret-key'
>>> assoc ='amazon-associate-account-name'
>>> amazon = AmazonAPI(access_key, secret, assoc)
>>> product = amazon.lookup(ItemId='1632360705')
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/home/tsuko/.virtualenvs/django17/lib/python3.4/site-packages/amazon/api.py", line 161, in lo
okup
    response = self.api.ItemLookup(ResponseGroup=ResponseGroup, **kwargs)
  File "/home/tsuko/.virtualenvs/django17/lib/python3.4/site-packages/bottlenose/api.py", line 242, i
n __call__
    {'api_url': api_url, 'cache_url': cache_url})
  File "/home/tsuko/.virtualenvs/django17/lib/python3.4/site-packages/bottlenose/api.py", line 203, i
n _call_api
    return urllib2.urlopen(api_request, timeout=self.Timeout)
  File "/usr/lib/python3.4/urllib/request.py", line 153, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/lib/python3.4/urllib/request.py", line 461, in open
    response = meth(req, response)
  File "/usr/lib/python3.4/urllib/request.py", line 571, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib/python3.4/urllib/request.py", line 499, in error
    return self._call_chain(*args)
  File "/usr/lib/python3.4/urllib/request.py", line 433, in _call_chain
    result = func(*args)
  File "/usr/lib/python3.4/urllib/request.py", line 579, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 400: Bad Request

现在我想我很好奇这是否是 PythonAnywhere 的一些怪癖,或者我是否错过了 Django 中的配置设置?据我所知,通过 AWS 和 Amazon Associates 页面我的密钥是正确的。我不太担心此时的解析,只是获取对象。我什至尝试绕过 API 并仅使用 Bottlenose(API 扩展)但我得到相同的错误 400 结果。

我对 Django 和亚马逊的 API 很陌生,如有任何帮助,我们将不胜感激!

您还没有授权您的帐户进行 API 访问。为此,您可以前往 https://affiliate-program.amazon.com/gp/advertising/api/registration/pipeline.html