2013-04-06 9 views
10

Was ist die aktuellste Form von Oauth für Python 3?Gibt es eine funktionierende OAuth-Bibliothek für Python 3?

Ich versuche, eine Bestandsüberwachung mit der API meines Brokers zu erstellen, die Oauth verwendet. Die meisten Informationen, die ich finde, sind veraltet oder widersprüchlich. Ich habe die folgenden Module referenziert:

Oauth - Scheint das Original zu sein, jetzt veraltet. Ich bekomme einen Fehler von '' Modul 'Objekt hat kein Attribut' Consumer '"

Oauth2 - Neuere Version, anscheinend auch veraltet? Der am meisten referenzierte Online. Erlischt in pip/kann nicht herausfinden, wie man es installiert.

Oauthlib - IIRC, behauptet der neue Ersatz für Oauth und OAuth2

Rauth.OAuth2Service zu sein - auch Ersatz potenziell für Oauth und OAuth2?

Anfragen -?

Oauth_hook -?

pyoauth2 - Ich bekomme einen Fehler über ein Modul namens "Client" in pyoauth2 init.

Keiner von ihnen scheint zu funktionieren, wie erwartet, und ich habe das Gefühl, dass dies aufgrund der niedrigen Oauth 3-Unterstützung ist. Hast du OAuth in Python 3 arbeiten lassen? Wenn ja, wie hast du es gemacht?

+0

Suchen Sie nach Oauth1 oder Oauth2 (sie sind inkompatible Versionen des Standards und einige Dienste eine Version oder die andere)? –

+0

Entweder. Momentan arbeitet keines der Module mit Python 3. –

+0

Ich hatte Erfolg mit [oauthlib] (https://pypi.python.org/pypi/oauthlib) und Oauth1 auf Python 3.2. –

Antwort

6

Es sieht aus wie Requets_oauthlib funktioniert. Hier ist der Code, den ich in Python 3 verwendet habe. Ich poste ihn, weil die meisten Beispielcodes, die ich gefunden habe, Formate verwendet haben, die ich nicht funktionierte.

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') 
6

Autor von Rauth hier: Rauth ist eine Client-Bibliothek, die offiziell Python 3.

jedoch derzeit nicht unterstützt, sind wir daran zu arbeiten, und es gibt an active branch über auf GitHub (treffend „Python-3“ genannt) was funktioniert. Du kannst es verwenden, aber bedenke, dass sich die Dinge leicht ändern können, wenn wir später offiziell Unterstützung dafür veröffentlichen. Mit diesen Worten wäre es großartig, Leute in der realen Welt testen zu lassen, damit wir Änderungen vornehmen können, um das Python 3-Ökosystem unterzubringen.

Beachten Sie auch: outhlib ist kein Ersatz für Rohth und nicht eine Client-Bibliothek. Es versucht, eine generische Lösung zu sein, ähnlich wie python-oauth2, aber es stellt keinen Client bereit, im Gegensatz zu python-oauth2.

+0

Danke. Ich werde das überprüfen! –

+1

Sicher Sache. Auch hier ist ein Kern mit den portierten Beispielen für Python 3: https://gist.github.com/maxcountryman/5277290 – maxcountryman

+2

Ich scheint, dass jetzt rauth [unterstützt Python 3] (https://github.com/litl/rauth/commit/2c0d348c7560ffe62f6012c9c6cf64e8b0be0e88)! – dotancohen

Verwandte Themen