使用Tweepy转发推文时出现401 Unauthorized未授权错误如何解决
Tweepy调用转发接口返回401未授权错误解决方法
核心原因及对应解决方案
- 最常见问题:修改应用权限后未重新生成Access Token
你在Twitter开发者后台修改应用为读写权限后,此前已生成的Access Token仍会保留旧的只读权限,必须重新生成新的Access Token、Access Token Secret,替换代码中的对应值才能生效。 - 权限配置不完整
进入开发者后台对应项目的设置页,确认以下两项配置正确:
- 应用权限确实设置为
Read and Write,不是仅读权限 - 已启用OAuth 1.0a认证方式,测试场景回调地址可填写
http://localhost即可
- 配置参数匹配错误
代码中你自定义的变量名为acess_token(拼写缺省字母c,正确拼写为access,但只要参数值和变量对应不影响运行),请确认四个鉴权参数:consumer_key、consumer_secret、access_token、access_token_secret没有填错、没有多余空格,不要混淆consumer_secret和access_token_secret的取值。 - 重复转发触发异常
部分场景下重复转发同一条推文会返回401而非403状态码,可以在转发前增加判断逻辑,避免重复调用接口,参考修改后的代码:
import tweepy consumer_key = '替换为你的consumer_key' consumer_secret = '替换为你的consumer_secret' # 建议修正拼写为标准的access_token,避免后续维护出错 access_token = '替换为你重新生成的access_token' access_token_secret = '替换为你重新生成的access_token_secret' auth = tweepy.OAuthHandler(consumer_key, consumer_secret) auth.set_access_token(access_token, access_token_secret) api = tweepy.API(auth) mentions = api.mentions_timeline() for mention in mentions: # 增加未转发判断,避免重复调用 if not mention.retweeted: api.retweet(mention.id)
内容的提问来源于stack exchange,提问作者Lorenzo Battistela
相关产品推荐
相关产品推荐

