使用Tweepy调用client.get_user()时遇403 Forbidden认证错误求助
解决Tweepy Client.get_user() 403/401认证错误的方案
核心问题原因
Twitter API v2的get_user等接口要求应用必须绑定到开发者项目,未绑定项目的独立应用凭证无法访问这些接口;同时该接口仅支持Bearer Token认证,OAuth 1.0a凭证(API密钥+访问令牌)不被允许——这是你出现403/401错误的根本原因。而create_tweet接口支持OAuth 1.0a认证,所以发布推文的代码能正常运行。
解决方案步骤
1. 将应用绑定到Twitter开发者项目
- 登录Twitter开发者门户,进入你的应用详情页,检查顶部是否显示“所属项目”。若未绑定,点击“添加到项目”,创建新项目或选择现有项目完成绑定。
- 绑定完成后,重新生成所有凭证(包括Bearer Token、API密钥、访问令牌等),确保新凭证关联到项目。
2. 使用正确的认证方式调用get_user
get_user接口仅支持Bearer Token认证,调整代码如下:
import tweepy import os # 仅使用绑定项目的应用生成的Bearer Token bearer_token = os.getenv('TWI_BEARER_TOKEN') client = tweepy.Client(bearer_token=bearer_token) user_get = client.get_user(username='twitterusers') user_id = user_get.data.id print(user_id)
3. 确认项目访问级别
进入开发者门户的项目页面,确保项目的访问级别为Essential或更高(免费版Essential已满足基础用户查询需求)。旧版未绑定项目的独立应用会被限制访问API v2的部分接口,必须绑定项目才能解锁权限。
验证操作
- 替换环境变量中的所有新生成的凭证。
- 运行调整后的代码,确认能正常获取目标用户的ID。
内容的提问来源于stack exchange,提问作者KeiGri
相关产品推荐
相关产品推荐

