gpt4 book ai didi

python - 为什么我得到错误的亚马逊商品广告 API 签名?

转载 作者:太空宇宙 更新时间:2023-11-04 01:36:17 25 4
gpt4 key购买 nike

我严格按照 API 文档中的说明进行操作,在经历了一些挫折之后,我终于直接从他们在 http://docs.amazonwebservices.com/AWSECommerceService/2011-08-01/DG/rest-signature.html 上的示例中整理了一些东西

我已经在几台机器上尝试过这个 python 脚本,并且在所有机器上都得到了相同的结果。

import hmac
from base64 import b64encode
from hashlib import sha256

secret_key = '1234567890'

to_sign = """GET
webservices.amazon.com
/onca/xml
AWSAccessKeyId=AKIAI44QH8DHBEXAMPLE&ItemId=0679722769&Operation=ItemLookup&ResponseGroup=ItemAttributes%2COffers%2CImages%2CReviews&Service=AWSECommerceService&Timestamp=2009-01-01T12%3A00%3A00Z&Version=2009-01-06"""

print b64encode(hmac.new(secret_key, to_sign, sha256).digest())

说明使用此请求和此 key 的签名是 Nace+U3Az4OhN7tISqgs1vdLBHBEijWcBeCqL5xN9xg= 但我得到 O6UTkH+m4zAQUvB+WXUZJeA8bZcKAdkc4crKgHtbc6s=

(在任何人说什么之前:示例页面显示的请求被 65 个字符包裹;我已经尝试过了。这不提供解决方案,并且在签名创建说明中也没有说明。)


编辑:我找到了答案,见下文。

最佳答案

好吧,看看那个……文档是错误的。

我偶然发现了这个问题的旧(几乎)副本:Calculating a SHA hash with a string + secret key in python

在示例请求页面中,AWSAccessKeyId 值似乎从 00000000000000000000 更改为 AKIAI44QH8DHBEXAMPLE

在脚本中更新它会打印预期的 key ,Nace+U3Az4OhN7tISqgs1vdLBHBEijWcBeCqL5xN9xg=

import hmac
from base64 import b64encode
from hashlib import sha256

secret_key = '1234567890'

to_sign = """GET
webservices.amazon.com
/onca/xml
AWSAccessKeyId=00000000000000000000&ItemId=0679722769&Operation=ItemLookup&ResponseGroup=ItemAttributes%2COffers%2CImages%2CReviews&Service=AWSECommerceService&Timestamp=2009-01-01T12%3A00%3A00Z&Version=2009-01-06"""

print b64encode(hmac.new(secret_key, to_sign, sha256).digest())

关于python - 为什么我得到错误的亚马逊商品广告 API 签名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9441498/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com