Twitter,错误:urllib.error.HTTPError:HTTP错误401:未授权
def send_to_twitter(): msg = "I am a message that will be sent to Twitter" password_manager = urllib.request.HTTPPasswordMgr() password_manager.add_password("Twitter API", "http://twitter.com/statuses", "username", "password") http_handler = urllib.request.HTTPBasicAuthHandler(password_manager) page_opener = urllib.request.build_opener(http_handler) urllib.request.install_opener(page_opener) params = urllib.parse.urlencode( {'status': msg} ) resp = urllib.request.urlopen("http://twitter.com/statuses/update.json", params) resp.read()
当我通过IDLE运行这段代码时,出现了类似这样的错误;
urllib.error.HTTPError: HTTP Error 401: Unauthorized
我的代码可能哪里出问题了?
2 个回答
1
你现在使用的是旧的HTTP认证方法。建议你升级到OAuth认证。
请访问以下链接来设置你的Twitter应用:twitter.com/apps/new (小提示:你可以把你的网址设置为127.0.0.1来进行测试,并记得把应用类型设置为浏览器,同时指定回调网址)
接下来你可以继续操作。
4
Twitter 现在不再支持 HTTP 认证了,你应该改用 oauth 认证。
如果你想用 Python 来操作 Twitter,tweepy 这个库看起来是个不错的选择:它是最新的,支持 oauth,并且功能很全面。