2011-06-19 29 views
24

我試圖用python連接到twitter,我發現它真的很令人沮喪。
一切我讀表明,我需要一個消費重點,消費者祕密訪問密鑰和訪問祕密 - 例如:Using python OAUTH2 to access OAUTH protected resourcesTwitter OAuth2 Python入門

我可以從對Twitter的設置頁面,消費者密鑰和消費者祕密我創建的小測試應用程序,但其他兩個呢?經過一番Google搜索之後,似乎每個人都認爲這很明顯,你從哪裏得到這個信息並不值得提出,所以我可能會有一個非常愚蠢的時刻,但是有人可以爲我這樣的傻瓜拼出來嗎?

編輯:
OK讓這些細節打開你的Twitter應用程序設置,然後點擊"My Access Token"鏈接。
我想在尋找一個訪問令牌時,如果你點擊標題爲「我的訪問令牌」的鏈接可能會有所幫助。我很想把我的愚蠢歸咎於酒,但我真的不知道...

回答

94

幾乎所有博客上的oauth示例似乎都是oauth授權階段的示例,沒有一個關注如何實際製作一旦你有這些請求,一旦你明白它是如何工作的,這部分是非常明顯的。不幸的是,獲得最初的理解相當困難。

如果您只是嘗試通過腳本或應用程序訪問您的Twitter帳戶,您可以在應用程序設置頁面的底部獲得訪問令牌(在python oauth庫中稱爲密鑰)並保留dev.twitter.com在標題您的訪問令牌

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'] 

這個例子是使用Python的lib python-oauth2,這是一個不幸的是名爲OAuth的庫不OAuth2用戶庫。

如果你想真正讓其他人授權他們的帳戶被你的應用使用,那麼你需要實現重定向舞蹈,你要求Twitter的請求令牌/祕密對,然後將用戶重定向到twitter授權頁面使用此請求令牌,他們登錄並授權令牌並將其重定向回您的應用程序,然後將請求令牌交換爲您可以存儲並用於發出上述請求的訪問令牌和祕密對。

Twitter的三向OAuth例自述在http://github.com/simplegeo/python-oauth2似乎涵蓋需要做

+13

你應得獎牌這個答案。我一直在網上搜索有關如何從我自己的帳戶中獲取一些信息的詳細信息,這是我能找到的唯一全面的答案。 – ash

+0

似乎有幾十個圖書館和包裝自稱oauth或oauth2,這是什麼確切的? –

+0

使用谷歌應用程序引擎我得到: 導入oauth2作爲oauth ImportError:沒有名爲oauth2的模塊 –

-3

我個人使用tweepy什麼,它提供了一個很好的Python包裝到Twitter的API