12

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

我正在尝试使用我的经纪人的 API 创建一个股票筛选器,该 API 使用 Oauth。我发现的大多数信息都已过时或相互矛盾。我已经看到引用了以下模块:

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

Oauth2 - 较新的版本,显然也过时了?网上引用最多的一篇。pip 中的故障/无法弄清楚如何安装它。

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

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

要求 - ?

Oauth_hook - ?

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

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

4

2 回答 2

10

看起来 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')
于 2013-04-07T12:11:47.980 回答
7

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

然而,我们正在努力,并且在 GitHub 上有一个活跃的分支(恰当地命名为“python-3”)可以工作。您可以自由使用它,但请记住,当我们稍后正式发布对它的支持时,情况可能会略有变化。话虽如此,让人们在现实世界中测试它会很棒,这样我们就可以做出改变以适应 Python 3 生态系统。

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

于 2013-04-07T04:52:00.607 回答