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

2 投票
2 回答
3802 浏览
提问于 2025-04-16 04:19
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,并且功能很全面。

撰写回答