2013-04-06 15 views
10

Qual è la forma più attuale di Oauth per Python 3?Esiste una libreria OAuth funzionante per Python 3?

Sto cercando di creare un'azione di screening delle scorte utilizzando l'API del mio broker, che utilizza Oauth. La maggior parte delle informazioni che trovo non sono aggiornate o in conflitto. Ho visto i seguenti moduli di riferimento:

Oauth - Sembra essere l'originale, ormai obsoleto. Ottengo un errore di "modulo" oggetto non ha attributo "consumatore" "

Oauth2 - La versione più recente, apparentemente anche obsoleta? Quello più referenziato online. Glitches in pip/non riesco a capire come installarlo.

Oauthlib - IIRC, sostiene di essere la nuova sostituzione per OAuth e OAuth2

Rauth.OAuth2Service - anche potenzialmente sostituzione per OAuth e OAuth2?

Richieste -?

Oauth_hook -?

pyoauth2 - Ottengo un errore sul non avere un modulo denominato "client" in init di pyoauth2.

Nessuno di questi sembra funzionare come previsto, e ho la sensazione che ciò sia dovuto al basso supporto di Oauth 3. Hai OAuth per funzionare in Python 3? Se è così, come avete fatto?

+0

Stai cercando Oauth1 o Oauth2 (sono versioni incompatibili dello standard e alcuni servizi una versione o l'altra)? –

+0

O. Attualmente, nessuno dei due moduli funziona con Python 3. –

+0

Ho avuto successo con [oauthlib] (https://pypi.python.org/pypi/oauthlib) e Oauth1 su Python 3.2. –

risposta

6

Sembra che Requets_oauthlib funzioni. Ecco il codice che ho usato che funziona in Python 3. Lo sto postando perché la maggior parte del codice di esempio che ho trovato utilizzava dei formati che non riuscivo a far funzionare.

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

Autore Rauth qui: Rauth è una libreria client che attualmente non supporta ufficialmente Python 3.

Tuttavia, stiamo lavorando su di esso, e non c'è an active branch (giustamente chiamato "python-3") sopra a GitHub che funziona Sei libero di usarlo, ma tieni presente che le cose potrebbero cambiare leggermente quando rilasciamo ufficialmente il supporto in seguito. Detto questo, sarebbe bello avere persone nel mondo reale che la testano, così che possiamo apportare modifiche per accogliere l'ecosistema Python 3.

Nota: oauthlib non sostituisce rauth e non una libreria client. Tenta di essere una soluzione generica, proprio come Python-oauth2, ma non fornisce un client, diversamente da python-oauth2.

+0

Grazie. Lo controllerò! –

+1

Sicuro. Anche qui c'è un gist con gli esempi portati per Python 3: https://gist.github.com/maxcountryman/5277290 – maxcountryman

+2

Sembra che rauth ora [supporta Python 3] (https://github.com/litl/rauth/commit/2c0d348c7560ffe62f6012c9c6cf64e8b0be0e88)! – dotancohen

Problemi correlati