gpt4 book ai didi

python - 如何使用 python-oauth2 发送 oauth 请求

转载 作者:太空狗 更新时间:2023-10-29 22:09:48 25 4
gpt4 key购买 nike

我一直在苦苦思索如何使用 oauth 发送经过身份验证的请求。

我能够获得访问 token ,但不完全确定如何向他们提交请求。我在 Twitter 的开发者信息中找到了这个:

https://dev.twitter.com/docs/auth/oauth/single-user-with-examples#python其中有一些用于发送授权请求的示例代码:

def oauth_req(url, key, secret, http_method="GET", post_body=None,http_headers=None):
consumer = oauth.Consumer(key=consumerKey, secret=consumerSecret)
token = oauth.Token(key=tokenKey, secret=tokenSecret)
client = oauth.Client(consumer, token)
resp, content = client.request(
url,
method=http_method,
body=post_body,
headers=http_headers,
#force_auth_header=True
)
return resp,content

oauth_req('http://openapi.etsy.com/v2/shops/:user/transactions',tokenKey,tokenSecret)

但是,当我包含我的所有信息时,我收到以下错误:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/tmp/python-22060Umg.py", line 153, in <module>
transactions = oauth_req('http://openapi.etsy.com/v2/shops/:user/transactions',tokenKey,tokenSecret)
File "/tmp/python-22060Umg.py", line 76, in oauth_req
force_auth_header=True
TypeError: request() got an unexpected keyword argument 'force_auth_header'

其中 :user 是实际用户(我已将其从帖子中删除),tokenKey/tokenSecret 是访问 token 。

我想也许这就像注释掉有问题的行一样简单,但没有这样的运气:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/tmp/python-22060hwm.py", line 153, in <module>
transactions = oauth_req('http://openapi.etsy.com/v2/shops/:user/transactions',tokenKey,tokenSecret)
File "/tmp/python-22060hwm.py", line 75, in oauth_req
headers=http_headers
File "/usr/lib/python2.7/dist-packages/oauth2/__init__.py", line 662, in request
req.sign_request(self.method, self.consumer, self.token)
File "/usr/lib/python2.7/dist-packages/oauth2/__init__.py", line 493, in sign_request
self['oauth_body_hash'] = base64.b64encode(sha(self.body).digest())
TypeError: must be string or buffer, not None

现在,stackoverflow,你是我唯一的希望!有人对如何使用我的访问 token 提交请求有建议吗?

谢谢!

最佳答案

Twitter 的文档已过时——他们链接到的 oauth2 版本是一个 3 年前的分支。 oauth2.Client.request

不再有关键字参数 force_auth_header

即使删除了有问题的行你仍然会出错的原因是因为 post_body 的默认值是 None,它直接传递给 oauth2。客户端请求。你将无法在实践中做到这一点。您要么需要该参数,选择一个有效的默认值(例如空字符串),要么在传递它之前进行检查以防止出现此错误。

关于python - 如何使用 python-oauth2 发送 oauth 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12628246/

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