2011-05-06 110 views
5

基本上與此問題相同的問題,但在Python中尋找解決方案。 How to work around Twitter OAuth?繞過Twitter OAuth

理想情況下,我不想經過設置用戶/登錄界面和後端的環節,因爲我所做的工作是爲了內部目的。

我還想繞過我需要將用戶重定向到Twitter進行授權的部分。

謝謝

回答

3

你會想使用Twitter的OOB流。這是在這個答案很好地解釋

Twitter API - OOB Flow

+1

理想情況下,我希望該過程具有零交互涉及用戶。如果我沒有弄錯,這個流程仍然需要輸入PIN碼。 – super9 2011-05-09 02:26:45

+3

您希望如何在未經用戶認證的情況下訪問帳戶? – Acorn 2011-05-09 03:06:20

+1

我想要一個單向認證流程,而不需要用戶的任何輸入。我從來沒有說過沒有被用戶認證。 – super9 2011-05-10 04:42:34

3

所以,字裏行間一點,你有一個Twitter帳戶和密碼,因爲這是內部的,所以你不想去與一個auth過程這需要用戶與之交互?

OAuth背後的想法是,你永遠不知道用戶的密碼是什麼;我同意,如果我對你想要做的事情是正確的,那是不對的。 JohnD建議的OOB流程具有相同的問題。

如果您確實有帳號/密碼,那麼您可以使用登錄表單和推文表單直接處理對網站的提交。不幸的是,這意味着你無法訪問API(他們去年通過API加入了基本身份驗證) - 這取決於你正在嘗試做什麼,這可能會或可能不會成爲問題。

編輯:

使用OAuth並記住令牌。根據twitter API文檔,它永遠不會過期,並且由於您大概只有一些您關心的帳戶數量有限,因此您可以爲每個帳戶跳過一次OAuth環聊,直到您需要其他帳戶爲止。你甚至可以用編程的方式完成整個事情,只要用戶名和密碼,假設他們沒有在某處粘貼驗證碼。但我懷疑你最好的選擇是使用OAuth並存儲令牌。

+1

是的,這是正確的。基本身份驗證對我來說工作得很好,但就像你說的那樣,它已被棄用。 API中公開的未經身份驗證的數據不具有所有信息。我需要。 – super9 2011-05-10 04:46:24

+0

@Nai我覺得你被搞砸了。您可以使用公共Web表單,也可以使用OAuth之類的東西。但是,請注意,您只需爲每個帳戶跳過一次OAuth圈套,因爲令牌永不過期,因此您只需緩存令牌即可。我會更新我的回覆以包含該內容。 – 2011-05-10 05:45:09

+0

感謝您的確認。大聲笑 – super9 2011-05-10 05:47:59

0

您可能會考慮查看Mechanize。它使瀏覽器活動自動化。

所以你可以給你的用戶名/密碼到你的腳本。然後腳本應該將這些憑據傳遞給http://twitter.com/#!/login

傳統上,如果您從該網頁手動登錄,則響應將是另一個頁面,其基礎是您使用的憑據是否正確。

此處同樣的事情:根據憑據是否正確,響應是另一頁。

然後,您可以檢查響應是「登錄失敗」頁面還是「登錄失敗」頁面,並從那裏執行您需要執行的操作。

希望這有助於

1

我剛剛發現this bash script這樣的作品,親自測試,只是改變--ssl--sslv3

它基於mobile.twitter.com上使用的更簡單的身份驗證方法,您可以使用相同的原則使用urllib2re模塊處理它。


否則,你可以考慮,靠在這樣的網站http://www.supertweet.net/

SuperTweet.net提供了一個安全 機制在腳本 和其他Twitter的應用程序使用基本身份驗證 與Twitter的API。只要登錄了 通過Twitter授權MyAuth API代理SuperTweet.net應用 ,然後指定你的 的密碼選擇(不是你真正的推特 密碼),你的應用程序可以 與http://api.supertweet.net API的使用。

編輯:我看到現在這個網站在How to work around Twitter OAuth?答案鏈接,如果你已經讀到它忽略這部分的文章中引用。

1

如果您使用的是桌面或移動應用程序,那麼您可以使用xAuth。從用戶角度來看,它與獲取原始OAuth憑證的基本認證相同,並且沒有外部頁面。請注意,您必須獲得Twitter API小組的批准才能獲得xAuth訪問權限。