python - 亚马逊产品广告 API(ItemSearch 和 ItemPage)

标签 python api web-services amazon-advertising-api

我编写了以下代码:

from hashlib import sha256
from base64 import b64encode
import hmac
import urllib
from time import strftime, gmtime

url = 'http://ecs.amazonaws.com/onca/xml'
AWSAccessKeyId = amazon_settings.amazon_access_key_id
AssociateTag = amazon_settings.amazon_associate_tag
Keywords = urllib.quote_plus('Potter')
Operation = 'ItemSearch'
SearchIndex = 'Books'
Service = 'AWSECommerceService'
Timestamp = urllib.quote_plus(strftime("%Y-%m-%dT%H:%M:%S.000Z", gmtime()))
Version = '2011-08-01'

sign_to = 'GET\necs.amazonaws.com\n/onca/xml\nAWSAccessKeyId=%s&AssociateTag=%s&Keywords=%s&Operation=%s&SearchIndex=%s&Service=%s&Timestamp=%s&Version=%s' % (AWSAccessKeyId, AssociateTag, Keywords, Operation, SearchIndex, Service, Timestamp, Version)

Signature = urllib.quote_plus(b64encode(hmac.new(str(amazon_settings.amazon_secret_access_key), str(sign_to), sha256).digest()))

request = '%s?AWSAccessKeyId=%s&AssociateTag=%s&Keywords=%s&Operation=%s&SearchIndex=%s&Service=%s&Timestamp=%s&Version=%s&Signature=%s' % (url, AWSAccessKeyId, AssociateTag, Keywords, Operation, SearchIndex, Service, Timestamp, Version, Signature)

print request

当我使用这段代码时一切都很好。 但如果我尝试将 ItemPage 参数添加到 sign_to 变量并请求变量,我会收到错误 SignatureDoesNotMatch。

请帮助我。

最佳答案

这实际上并不能回答你的问题,但我建议你看看亚马逊产品广告 API 的优秀 python 包装器 - python-amazon-product-api

关于python - 亚马逊产品广告 API(ItemSearch 和 ItemPage),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10825629/

相关文章:

python - 具有写时复制功能的纯功能数据结构?

java - 等待多个 future 的回调

api - 功能/集成测试 NodeJS ReST API 实现

c# - 从 mule esb 使用 .NET ASMX Web 服务抛出 CXF 异常 : 401 Unauthorized

java - 用于Rich Client Java(Swing)应用程序的持久性Web服务

web-services - FFmpeg 将视频流发布到 Web 服务导致错误 'chunked body too large'

python - python 中未调用 json 自定义 object_hook

python - 使用列表 Python 映射列数据框

python - 使用多个条件从 numpy 数组中有效选择元素

ruby-on-rails-3 - 内部 REST API