无法认证Twitter
我刚接触Python和Twitter开发,完全搞不懂。我只是想用Python和tweepy库发个推文,做个项目。但是我无法验证我的账号信息,这让我非常烦恼。任何帮助都很有用!我使用的是Python 2.7,这是我的代码:
import tweepy
consumer_key = '*************'
consumer_secret = '*********************'
access_token = '****************'
access_token_secret = '************************'
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
api.update_status('Hello from tweepy!')
然后我得到了这个结果:
Traceback (most recent call last):
File "<pyshell#27>", line 2, in
api.update_status('Hello from tweepy!')
File "build/bdist.macosx-10.9-intel/egg/tweepy/binder.py", line 230, in_call
return method.execute()
File "build/bdist.macosx-10.9-intel/egg/tweepy/binder.py", line 203, in execute
raise TweepError(error_msg, resp)
TweepError: [{u'message': u'Your credentials do not allow access to this resource.', u'code':220}]
3 个回答
我觉得问题出在访问权限上。你需要添加你的手机号码,这样你的应用才能获得写入权限,比如“状态更新”。如果你还没做这一步,可以通过你的Twitter开发者账号去查看你的应用。点击你的应用名称。在应用页面上,你会看到一个权限选项卡。点击那里,然后选择“读取、写入和直接消息”的选项,最后点击更新设置。
你可能会看到下面的错误信息。
错误 在授予你的应用写入权限之前,你必须将手机号码添加到你的Twitter个人资料中。请阅读https://support.twitter.com/articles/110250-adding-your-mobile-number-to-your-account-via-web以获取更多信息。
请访问这个链接,根据说明添加你的手机号码。如果你的国家的移动服务提供商还不支持这个功能,那我很遗憾地告诉你,你只能获得读取权限。你无法通过应用程序向你的Twitter发送写入或直接消息。
想了解更多信息,可以随时访问我的博客链接 http://candpy-progs.blogspot.in/2012/12/chapter3-of-head-first-programming.html
我在第一次尝试用tweepy库连接的时候,也遇到了“无法验证你”的问题。虽然我刚刚创建了Twitter的消费者密钥和访问令牌,但我通过重新生成这两组密钥,并把新的密钥放进我的Python程序里,成功解决了这个问题。
问题在于,你需要授权你的应用程序使用你的账户。虽然你是开发这个应用的,但这听起来可能有点奇怪,因为OAuth最初是为了让很多人使用,而不仅仅是开发者自己。在Pastebin上,我上传了一个简短的授权脚本,用来验证我的Tumblr应用。运行这个应用之前,只需要把里面的链接和你的密钥换成自己的就可以了。此外,这个脚本使用的是OAuth2,不过在你授权了你的应用之后,你也可以自由使用tweepy。