我一直在用力撞墙,尝试以不同方式正确签署我的请求,以便我可以通过aws服务进行取回价格api调用。
这是我尝试拨打的电话: https://docs.aws.amazon.com/AWSECommerceService/latest/DG/EX_RetrievingPriceInformation.html
过一会儿,我决定最好使用现有模块,所以我尝试使用: https://github.com/DavidMuller/aws-requests-auth
但是,当我尝试将其更改为与“检索价格”请求一起使用时,遇到了一些问题。是否可以重做以下代码,还是应该采取更好的方法?
import sys, os, base64, datetime, hashlib, hmac
import requests
from aws_requests_auth.aws_auth import AWSRequestsAuth
associate_tag = "IMA_associate"
access_key = "SLIGHTLYLESSSECRETKEY"
secret_key = "SUPERSECRETKEY"
t = datetime.datetime.utcnow()
amzdate = t.strftime('%Y%m%dT%H%M%SZ')
datestamp = t.strftime('%Y%m%d') # Date w/o time, used in credential scope
auth = AWSRequestsAuth(aws_access_key=access_key,
aws_secret_access_key=secret_key,
aws_host='http://webservices.amazon.com/onca/xml',
aws_region='us-west-1',
aws_service='AWSECommerceService')
endpoint = 'http://webservices.amazon.com/onca/xml' \
+ '?AssociateTag=' + associate_tag \
+ '&AWSAccessKeyId=' + access_key \
+ '&IdType=ASIN' \
+ '&ItemId=B00KOKTZLQ' \
+ '&Operation=ItemLookup' \
+ '&ResponseGroup=Offers' \
+ '&Service=AWSECommerceService' \
# + '&Signature=' + auth \
+ '&Timestamp=' + str(datestamp)
response = requests.get(endpoint, auth=auth)
print(response.content)
我真的很感谢我能为此提供的任何帮助!仅包括正确方向上的一个点,这有点不合我意。
答案 0 :(得分:0)
我能够找到一个非常有用的Python模块,可以让我解决上述问题。
https://github.com/yoavaviram/python-amazon-simple-product-api
此模块使进行Amazon api产品调用非常简单。它缺少api提供的一些产品特性,但是将它们添加到项目中已经足够容易了,我将提供所有新信息的公关,因此希望到有人读到它时,它就可以进行访问了。 api提供的所有信息。