2010-02-21 91 views
3

我有一個用戶和一個密碼,我想使用Twitter API(我使用python-twitter)來檢查這些是否是有效的數據。如何使用Twitter API檢查用戶/密碼是否有效?

+0

您可能想要考慮使用OAuth來代替。我個人*討厭*需要從其他網站提供登錄信息的網站/系統;這只是一個不好的安全措施。 – Amber 2010-02-21 04:03:10

+0

我很抱歉,但我不能完全理解你的問題。您是否想要一種方法來檢查您是否可以使用給定的用戶名/密碼組合登錄到Twitter? – Nikwin 2010-02-21 04:18:48

+0

是的,Nikwin。對了。 – 2010-02-21 05:07:52

回答

0

如果您抓取python-twitter的0.7版本,則添加了VerifyCredentials方法。如果返回的值是None那麼用戶名/密碼組合不正確。

我首先使用api.GetUser(username)來檢查他們是否提供了有效的用戶名,然後使用api.VerifyCredentials()來檢查密碼 - 這樣我可以通知用戶他們登錄的哪部分是不正確的。

正如其他人所提到的,Twitter只推動OAuth登錄,並且預計會棄用現有的用戶名/密碼登錄方法。

+0

0.7是哪裏?我只能從svn的http://code.google.com/p/python-twitter/ – 2010-02-21 13:54:18

+0

找到0.6,對 – 2010-02-21 13:56:19

1

如果證書不正確,urllib2將引發HTTPError,並且消息將爲'HTTP Error 401:Unauthorized'。您可以使用API​​的臨時實例在try/except塊中創建授權請求(例如,GetFriends())以確定憑證是否有效。

import twitter, urllib2 
checkCreds = twitter.Api(username, pass) 
try: 
    checkCreds.GetFriends() 
except urllib2.HTTPError, status: 
    if status.find('401') != -1: 
    print 'Invalid username/password' 

Twitter將intentionally allow requests with missing or incorrect credentials爲可公開訪問的領域,如GetPublicTimeline()或GetUserTimeline()。

相關問題