为什么调用Tweepy的api.create_friendship接口会返回401未授权错误
Tweepy调用create_friendship返回401错误的原因及解决方案
常见触发原因
- 权限等级不匹配:
create_friendship属于写入类接口,需要开发者账号具备读写权限,如果你的密钥仅申请了只读权限,就会出现读接口正常、写入接口返回401的情况,这是最常见的触发原因。 - 旧token未同步权限:就算你已经在开发者后台修改为读写权限,要是你的Access Token是改权限之前生成的,旧token仍然会保留之前的只读权限,调用写入接口依然会被拦截。
- 鉴权参数配置错误:
create_friendship属于Twitter v1.1接口,需要完整传入四个鉴权参数:API Key、API Secret、Access Token、Access Token Secret,如果你之前的其他接口用的是v2 Client调用,两个实例的鉴权配置不同步也会触发401。 - 目标账号限制:如果要关注的账号设置了隐私保护、或者已将你的账号拉黑,部分场景下也会返回401错误。
解决步骤
- 进入Twitter开发者平台的对应应用管理页,在「用户身份验证设置」板块确认应用权限已调整为读取和写入,修改后保存配置。
- 重新生成Access Token和Access Token Secret,替换代码中对应的旧值,修改权限后旧token不会自动更新权限,必须重新生成才会生效。
- 确认Tweepy初始化配置正确,参考示例代码:
import tweepy # 四个鉴权参数必须全部正确填写 auth = tweepy.OAuth1UserHandler( "你的API Key", "你的API Secret", "新生成的Access Token", "新生成的Access Token Secret" ) api = tweepy.API(auth) # 调用关注接口 api.create_friendship(screen_name="example")
- 可以先调用
api.verify_credentials()验证当前鉴权信息是否有效,确认没问题后可以换一个公开的普通测试账号尝试关注,排除目标账号的限制问题。
内容的提问来源于stack exchange,提问作者Synikk
相关产品推荐
相关产品推荐

