使用Tweepy 4.10.1开发Twitter Bot遭遇403 Forbidden错误求助
Tweepy调用create_tweet触发403 Forbidden错误的排查方案
问题背景
已确认所有密钥、机密信息正确,且账号拥有高级访问权限(ELEVATED ACCESS),按照教程编写代码调用tweepy.Client.create_tweet发布推文时,出现tweepy.errors.Forbidden 403错误。
代码示例
import tweepy api_key = "XXXXX" api_secret = "XXXXX" bearer_token = r"XXXXX" access_token = "XXXXX" access_token_secret = "XXXXX" # "XXXX" 为占位符,实际使用时替换为真实密钥 client = tweepy.Client(bearer_token, api_key, api_secret, access_token, access_token_secret) auth = tweepy.OAuth1UserHandler(api_key, api_secret, access_token, access_token_secret) api = tweepy.API(auth) client.create_tweet(text="Hello Twitter")
错误截图

排查与解决步骤
检查项目权限配置
即使拥有高级访问权限,也要确保开发者项目的权限设置正确:- 登录Twitter开发者后台,进入对应项目的「User authentication settings」页面;
- 确认权限类型已设置为「Read and write」;
- 重新生成
access_token和access_token_secret,替换代码中的旧值。
调整Client初始化方式
Bearer Token默认仅用于API v2的只读操作,发布推文需要用户级别的OAuth认证。修改Client初始化代码,移除bearer_token参数:client = tweepy.Client( api_key=api_key, api_secret=api_secret, access_token=access_token, access_token_secret=access_token_secret )验证API端点权限
直接在Twitter API控制台测试/2/tweets端点:- 用你的OAuth认证信息调用该端点,尝试发布一条测试推文;
- 如果控制台也返回403,说明是权限配置问题,需回到开发者后台检查权限是否生效。
确认账号状态
手动登录你的Twitter账号,尝试发布一条普通推文:- 如果账号无法正常发推,说明账号可能存在限制,需联系Twitter支持解决;
- 如果手动发推正常,再回到代码排查认证逻辑问题。
内容的提问来源于stack exchange,提问作者Slobodan B.
相关产品推荐
相关产品推荐

