我正在尝试使用 oauth1 生成签名,以此为指导:Implementation HMAC-SHA1 in python
使用以下代码,我收到“格式错误的授权标头”错误:
import requests
import oauthlib.oauth1.rfc5849.signature as oauth
from random import getrandbits
nonce = str(getrandbits(64))
headers={
"Authorization": (
'oauth_nonce=nonce, '
'oauth_consumer_key=CONSUMER_KEY, '
'oauth_signature_method="HMAC-SHA1", '
)
}
params = oauth.collect_parameters(
uri_query="",
headers=headers,
exclude_oauth_signature=True,
with_realm=False
)
norm_params = oauth.normalize_parameters(params)
base_string = oauth.construct_base_string(
"POST",
"https://my_api/account",
norm_params
)
sig = oauth.sign_hmac_sha1(
base_string,
client_secret,
resource_owner_secret
)
print (sig)
问题: 1. 我需要在标题中添加时间戳吗?2. 假设签名有效,POST 请求如何获取我的数据?这里的目的是获取一个签名,然后我在 api 上的后续 GET 中使用该签名吗?3. 为什么 'sig' 变量中的方法没有创建有效的签名?4. 签名应该在标题中吗?