Twitter,错误:urllib.error.HTTPError:HTTP错误401:未经授权

时间:2010-09-19 07:10:03

标签: python twitter

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 个答案:

答案 0 :(得分:4)

Twitter no longer supports HTTP Authentication。你应该使用oauth。

如果你想从python做推特,那么

tweepy似乎是一个很好的图书馆:它是最新的,支持誓言并且看起来非常完整。

答案 1 :(得分:1)

您正在使用旧的HTTP身份验证方法。使用OAuth升级。

转到以下链接设置您的Twitter应用程序:twitter.com/apps/new (提示:您可以将URL设置为127.0.0.1以进行测试,并记住将应用程序设置为浏览器并指定回调URL)

你可以从那里继续。