2013-04-06 7 views
10

Jaka jest najbardziej aktualna forma Oauth dla Python 3?Czy istnieje działająca biblioteka OAuth dla Python 3?

Próbuję utworzyć przeglądarkę akcji za pomocą mojego API brokera, który wykorzystuje Oauth. Większość znalezionych informacji jest nieaktualna lub sprzeczna. Widziałem następujące moduły wymienione:

Oauth - Wydaje się być oryginalny, teraz nieaktualne. Wystąpił błąd obiektu "moduł" nie ma atrybutu "Konsument" "

Oauth2 - Nowsza wersja, najwyraźniej również przestarzała? Ten, do którego najczęściej się odwołujesz online. Błyskawica w pip/nie może dowiedzieć się, jak go zainstalować.

Oauthlib - IIRC, twierdzi, że nowy zamiennik OAuth i OAuth2

Rauth.OAuth2Service - także potencjalnie zamiennik OAuth i OAuth2?

Żądania -?

Oauth_hook -?

pyoauth2 - Otrzymuję komunikat o braku modułu o nazwie "client" w in init pyoauth2.

Żadna z nich nie działa zgodnie z oczekiwaniami i mam wrażenie, że jest to spowodowane niską obsługą Oauth 3. Czy uzyskałeś OAuth do pracy w Pythonie 3? Jeśli tak, jak to zrobiłeś?

+0

Szukasz Oauth1 lub Oauth2 (są to niekompatybilne wersje standardu i niektóre usługi w jednej lub w drugiej wersji)? –

+0

Albo. Obecnie żaden moduł nie działa z Pythonem 3. –

+0

Odniosłem sukces w [oauthlib] (https://pypi.python.org/pypi/oauthlib) i Oauth1 w Pythonie 3.2. –

Odpowiedz

6

Wygląda na to, że Requets_oauthlib działa. Oto kod, którego użyłem, który działa w Pythonie 3. Publikuję go, ponieważ większość kodu przykładowego znalazłem używane formaty, których nie mogłem pracować.

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 Rauth tutaj: Rauth jest biblioteką klient, który obecnie oficjalnie nie obsługuje Python 3.

Jednak pracujemy nad nim, a tam an active branch (o wdzięcznej nazwie „python-3”) na co GitHub który działa. Możesz z niego korzystać, ale pamiętaj, że sytuacja może się nieco zmienić, kiedy oficjalnie udostępnimy do tego wsparcie później. Powiedziawszy to, byłoby wspaniale, gdyby ludzie w realnym świecie testowali to, abyśmy mogli wprowadzić zmiany, aby dostosować się do ekosystemu Python 3.

Uwaga: oauthlib nie zastępuje biblioteki rauth, a nie klienta. Próbuje być ogólnym rozwiązaniem, podobnie jak python-oauth2, ale nie dostarcza klienta, w przeciwieństwie do python-oauth2.

+0

Dziękuję. Sprawdzę to! –

+1

Pewnie. Także tutaj jest sedno z przeniesionymi przykładami dla Pythona 3: https://gist.github.com/maxcountryman/5277290 – maxcountryman

+2

Wydaje mi się, że rauth teraz [obsługuje Python 3] (https://github.com/litl/rauth/commit/2c0d348c7560ffe62f6012c9c6cf64e8b0be0e88)! – dotancohen