用python生成OAuth签名库

用python生成OAuth签名库,python,oauth,Python,Oauth,可能重复: `我试图用python进行一些OAuth身份验证,但我的OAuth_签名一直被拒绝。Python 3对我来说是相当新的,所以有人能告诉我这段代码有什么问题吗: api_key = 'string' api_secret = 'another_string' sig_key = api_secret + '&' + api_key hmac_alg = hmac.new(sig_key.encode('utf-8'), sig_base_str.encode('utf-8')

可能重复:

`我试图用python进行一些OAuth身份验证,但我的OAuth_签名一直被拒绝。Python 3对我来说是相当新的,所以有人能告诉我这段代码有什么问题吗:

api_key = 'string'
api_secret = 'another_string'
sig_key = api_secret + '&' + api_key
hmac_alg = hmac.new(sig_key.encode('utf-8'), sig_base_str.encode('utf-8'),hashlib.sha1)

signature_base = base64.b64encode(hmac_alg.digest())
url = url_base + '?' + 'oauth_signature=' + urllib.parse.quote(str(signature_base.decode('utf-8')),'') + '&' + str(param_str)

param_str是由输入参数分隔的字符串(&D)。HTTP服务似乎读得很好,因为它将根据我的请求更改输出响应。它总是拒绝我的签名。我认为hmac是罪魁祸首。

你能试试下面的方法吗

api_key = b'string'
api_secret = b'another_string'
来自python文档

PEP 3112:字节文本。b。。。字符串文字表示法及其应用 变体,如b'…',b…,和br。。。现在生成一个文本 字节的类型


看起来你回答的问题和刚才问的完全不同。我想我明白你的意思了。我尝试过使用这个key=b'secret&key',但仍然没有成功。我认为我的问题在于将伪代码转换为python。因为hmac不接受字符串。