是否有适用于Python 3的OAuth库?

时间:2013-04-06 15:37:31

标签: python oauth python-3.x oauth-2.0

Python 3的最新形式的Oauth是什么?

我正在尝试使用我的经纪人API创建一个股票筛选器,它使用Oauth。我发现的大部分信息都已过时或存在冲突。我已经看到引用了以下模块:

Oauth - 似乎是原始的,现在已经过时了。我收到错误“'模块'对象没有属性'消费者'”

Oauth2 - 更新的版本,显然也已过时了?在线引用最多的一个。在点子中出现故障/无法弄清楚如何安装它。

Oauthlib - IIRC,声称是Oauth和Oauth2的新替代品

Rauth.OAuth2Service - 也可能替代Oauth和Oauth2?

请求 - ?

Oauth_hook - ?

pyoauth2 - 我在pyoauth2的init中没有名为“client”的模块时收到错误。

它们似乎都没有按预期工作,我觉得这是由于Oauth 3支持率低。你有没有让OAuth在Python 3中工作?如果是这样,你是怎么做到的?

2 个答案:

答案 0 :(得分:9)

看起来像Requets_oauthlib有效。这是我在Python 3中使用的代码。我发布它是因为我发现的大多数示例代码都使用了我无法工作的格式。

from requests_oauthlib import OAuth1    

client_key = ''
client_secret = ''
resource_owner_key = ''
resource_owner_secret = ''

def query(queryurl):
        headeroauth = OAuth1(client_key, client_secret, resource_owner_key,
        resource_owner_secret, signature_type = 'auth_header')

        return requests.get(queryurl, auth = headeroauth)

query('http://website.com')

答案 1 :(得分:7)

rauth的作者:rauth是一个客户端库,目前还没有正式支持Python 3。

但是,我们正在研究它,并且在GitHub上有an active branch(恰当地命名为“python-3”)。您可以自由使用它,但请记住,当我们稍后正式发布对它的支持时,事情可能会略有改变。有了这样说,让人们在现实世界中测试它以便我们可以进行更改以适应Python 3生态系统将会很棒。

另请注意:oauthlib不是rauth的替代品,也不是客户端库的替代品。它试图成为一个通用的解决方案,就像python-oauth2一样,但与python-oauth2不同,它不提供客户端。