如何使用Twitter API检查用户/密码是否有效?
我有一个用户名和密码,我想用Twitter的API(我正在使用python-twitter)来检查这些信息是否有效。
2 个回答
1
如果你的账号信息不对,urllib2会报错,错误信息是'HTTP Error 401: Unauthorized',意思是没有权限。你可以用一个临时的API实例,比如GetFriends(),在一个try/except的代码块里去发起一个授权请求,这样就能检查你的账号信息是否有效。
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会故意允许在一些公开的地方,比如GetPublicTimeline()或GetUserTimeline(),发送缺少或错误的账号信息的请求。
0
如果你下载了0.7版本的python-twitter,你会发现新增了一个叫做VerifyCredentials的方法。如果这个方法返回的值是None
,那么说明你输入的用户名和密码不正确。
我喜欢先用api.GetUser(username)
来检查用户提供的用户名是否有效,然后再用api.VerifyCredentials()
来检查密码。这样我就可以告诉用户他们登录时哪个部分出错了。
正如其他人提到的,Twitter正在推动只使用OAuth登录,并预计会逐步淘汰现有的用户名和密码登录方式。