2011-06-19 50 views
24

Tôi đang cố kết nối với twitter bằng python và tôi thấy nó thực sự bực mình.
Tất cả những gì tôi đọc thấy rằng tôi cần một chìa khóa tiêu dùng, một bí mật của người tiêu dùng, một phím truy cập và một bí mật truy cập - ví dụ: Using python OAUTH2 to access OAUTH protected resourcesBắt đầu với Twitter OAuth2 Python

Tôi có thể lấy chìa khóa của người tiêu dùng và mật của người dùng từ trang cài đặt twitter cho ứng dụng thử nghiệm nhỏ mà tôi đã tạo, nhưng còn hai ứng dụng khác thì sao? Sau một chút googling có vẻ như mọi người nghĩ rằng nó rất rõ ràng, nơi bạn nhận được thông tin này từ đó nó không có giá trị đưa lên, vì vậy tôi có thể có một thời điểm thực sự câm nhưng ai đó có thể xin vui lòng đánh vần nó cho idiots như tôi xin vui lòng?

Edit:
OK để có được những chi tiết này mở cài đặt ứng dụng của bạn trong Twitter và nhấp vào liên kết "My Access Token".
Tôi giả sử khi tìm kiếm Mã thông báo truy cập, nếu bạn nhấp vào liên kết có tiêu đề "Mã thông báo truy cập của tôi" có thể hữu ích. Tôi muốn gán sự ngu xuẩn của tôi cho rượu, nhưng thực sự tôi không biết ...

Trả lời

94

Hầu hết tất cả các ví dụ về blog đều là ví dụ về giai đoạn ủy quyền của oauth và không tập trung vào cách thực sự tạo ra yêu cầu một khi bạn có những điều này, như một khi bạn hiểu cách nó hoạt động phần này là khá rõ ràng. Hiểu rằng sự hiểu biết ban đầu là khá khó khăn.

Nếu bạn đang thử truy cập tài khoản twitter của mình từ tập lệnh hoặc ứng dụng cho chính mình, bạn có thể nhận mã thông báo truy cập (được gọi là thư viện python oauth) và bí mật từ dev.twitter.com ở cuối trang cài đặt cho ứng dụng của bạn dưới tiêu đề Mã thông báo truy cập của bạn.

import oauth2 as oauth 
import json 

CONSUMER_KEY = "your app's consumer key" 
CONSUMER_SECRET = "your app's consumer secret" 
ACCESS_KEY = "your access token" 
ACCESS_SECRET = "your access token secret" 

consumer = oauth.Consumer(key=CONSUMER_KEY, secret=CONSUMER_SECRET) 
access_token = oauth.Token(key=ACCESS_KEY, secret=ACCESS_SECRET) 
client = oauth.Client(consumer, access_token) 

timeline_endpoint = "https://api.twitter.com/1.1/statuses/home_timeline.json" 
response, data = client.request(timeline_endpoint) 

tweets = json.loads(data) 
for tweet in tweets: 
    print tweet['text'] 

Ví dụ này được sử dụng python lib python-oauth2, mà là một OAuth thư viện không may tên không phải là một thư viện OAuth2.

Nếu bạn muốn thực sự cho phép người khác ủy quyền tài khoản của họ được ứng dụng sử dụng thì bạn cần triển khai điệu nhảy chuyển hướng nơi bạn hỏi twitter cho một mã yêu cầu/cặp bí mật rồi chuyển hướng người dùng đến trang ủy quyền twitter với mã thông báo yêu cầu này, họ đăng nhập và ủy quyền mã thông báo và được chuyển hướng trở lại ứng dụng của bạn, sau đó trao đổi mã thông báo yêu cầu cho mã thông báo truy cập và cặp bí mật mà bạn có thể lưu trữ và sử dụng để thực hiện các yêu cầu như trên.

Các OAuth Ví dụ Twitter Ba chân trong Readme tại http://github.com/simplegeo/python-oauth2 dường như để bù đắp những gì cần phải được thực hiện

+13

Bạn xứng đáng được một huy chương cho câu trả lời này. Tôi đã lướt web để biết chi tiết về cách đơn giản nhận được một số thông tin từ tài khoản của riêng tôi, và đây là câu trả lời toàn diện duy nhất tôi có thể tìm thấy. – ash

+0

Dường như có hàng tá thư viện và trình bao bọc tự gọi mình là oauth hoặc oauth2, cái nào chính xác là cái này? –

+0

Sử dụng công cụ ứng dụng google tôi nhận được: nhập oauth2 là oauth NhậpError: Không có mô-đun có tên oauth2 –

-3

Cá nhân tôi sử dụng tweepy, nó cung cấp một con trăn wrapper tốt đẹp để API của Twitter