2013-04-06 21 views
10

Hình thức Oauth mới nhất cho Python 3 là gì?Có thư viện OAuth hoạt động cho Python 3 không?

Tôi đang cố tạo màn hình cổ phiếu bằng API của nhà môi giới của tôi, sử dụng Oauth. Hầu hết thông tin tôi tìm thấy đã lỗi thời hoặc xung đột. Tôi đã thấy các mô-đun sau được tham chiếu:

Oauth - Có vẻ như là bản gốc, hiện đã lỗi thời. Tôi gặp lỗi của đối tượng "mô-đun" không có thuộc tính 'Người tiêu dùng' "

Oauth2 - Phiên bản mới hơn, dường như cũng lỗi thời? Người được tham chiếu nhiều nhất trên mạng. Ổn định trong pip/không thể tìm ra cách cài đặt nó.

Oauthlib - IIRC, tuyên bố là thay thế mới cho Oauth và OAuth2

Rauth.OAuth2Service - Cũng có khả năng thay thế cho Oauth và OAuth2?

Yêu cầu -?

Oauth_hook -?

pyoauth2 - Tôi gặp lỗi về việc không có mô-đun có tên là "máy khách" trong init của pyoauth2.

Không ai trong số họ có vẻ hoạt động như mong đợi và tôi có cảm giác rằng điều này là do hỗ trợ Oauth 3 thấp. Bạn đã nhận OAuth hoạt động trong Python 3 chưa? Nếu vậy, làm thế nào bạn làm điều đó?

+0

Bạn đang tìm kiếm Oauth1 hoặc Oauth2 (chúng không tương thích với các phiên bản và một số phiên bản dịch vụ hoặc phiên bản khác)? –

+0

Hoặc. Hiện tại, cả hai module đều không hoạt động với Python 3. –

+0

Tôi đã thành công với [oauthlib] (https://pypi.python.org/pypi/oauthlib) và Oauth1 trên Python 3.2. –

Trả lời

6

Có vẻ như Requets_oauthlib hoạt động. Đây là mã tôi sử dụng mà làm việc trong Python 3. Tôi đăng nó vì hầu hết các mã ví dụ tôi tìm thấy các định dạng được sử dụng mà tôi không thể làm việc.

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

Tác giả của rauth đây: rauth là một thư viện khách hàng mà hiện không chính thức hỗ trợ Python 3.

Tuy nhiên, chúng tôi đang làm việc trên nó, và có an active branch (hòn đảo có tên "python-3") qua tại GitHub hoạt động. Bạn được tự do sử dụng nó, nhưng lưu ý rằng mọi thứ có thể thay đổi đôi chút khi chúng tôi chính thức phát hành hỗ trợ cho nó sau này. Với điều đó đã nói, thật tuyệt vời khi đưa mọi người ra ngoài trong thế giới thực thử nghiệm nó để chúng ta có thể thực hiện các thay đổi để phù hợp với hệ sinh thái Python 3.

Cũng lưu ý: oauthlib không thay thế cho rauth chứ không phải thư viện khách hàng. Nó cố gắng trở thành một giải pháp chung, giống như python-oauth2, nhưng nó không cung cấp một ứng dụng khách, không giống như python-oauth2.

+0

Cảm ơn bạn. Tôi sẽ kiểm tra điều này! –

+1

Điều chắc chắn. Ngoài ra, đây là một ý chính với các ví dụ được chuyển cho Python 3: https://gist.github.com/maxcountryman/5277290 – maxcountryman

+2

Tôi có vẻ là rauth bây giờ [hỗ trợ Python 3] (https://github.com/litl/rauth/commit/2c0d348c7560ffe62f6012c9c6cf64e8b0be0e88)! – dotancohen