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


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中工作?如果是这样,你是怎么做到的?


4250
2018-04-06 15:37


起源

您是在寻找Oauth1还是Oauth2(它们是标准的不兼容版本,有些服务是一个版本还是其他版本)? - Pedro Romano
无论是。目前,这两个模块都不适用于Python 3。 - Turtles Are Cute
我成功了 oauthlib 和Python 3.2上的Oauth1。 - Pedro Romano
谢谢 - 你是对的,Oauthlib在阅读文档后工作。 - Turtles Are Cute


答案:


它看起来像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')

8
2018-04-07 12:11





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

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

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


7
2018-04-07 04:52



谢谢。我会检查一下! - Turtles Are Cute
当然可以。另外,这里是Python 3的移植示例的要点: gist.github.com/maxcountryman/5277290 - maxcountryman
我现在看起来像是 支持Python 3! - dotancohen
4年后(2017年),rauth是第一个使用Python3和OAuth2为我“工作”的库。这是在尝试了大约6个其他选项之后。谢谢。 - Amos Shapira