使用tweepy的create_tweet()无法发送推文报错求助
问题排查与解决方案
第一个TypeError报错处理
tweepy.Client的create_tweet方法所有参数均要求为关键字参数,不支持直接传入位置参数传文本,你后续调整为text="First tweet!"的写法已经解决了该报错,剩下的403错误属于权限类问题,按以下步骤排查解决即可:
403 Forbidden 报错解决方案
- 检查项目权限配置
默认创建的Twitter API v2项目只有只读权限,没有发推权限。你需要进入Twitter开发者后台,找到对应应用,在「用户认证设置」板块,把应用权限从只读修改为读写权限,即可获得发推权限。 - 重新生成所有密钥令牌
修改应用权限后,原有密钥、令牌的权限不会自动更新,必须在开发者后台「密钥和令牌」页面重新生成Consumer Key、Consumer Secret、Access Token、Access Token Secret四个参数,替换代码里的旧参数。 - 确认初始化代码正确性
检查参数拼写、传值没有错误,参考初始化写法:import tweepy # 替换为你重新生成的对应参数 consumer_key = "你的Consumer Key" consumer_sec_key = "你的Consumer Secret" access_token = "你的Access Token" access_token_secret = "你的Access Token Secret" nclient = tweepy.Client( consumer_key=consumer_key, consumer_secret=consumer_sec_key, access_token=access_token, access_token_secret=access_token_secret ) - 排查接口限制触发情况
新开发者账号有发推频率限制,短时间内多次调用发推接口、发送重复内容、内容违规都会触发403报错,更换测试内容后间隔1~2分钟再尝试即可。
最终测试代码
new_tweet = nclient.create_tweet(text = "First tweet!") # 调用成功后会返回新推文ID,可打印验证结果 print(new_tweet.data["id"])
内容的提问来源于stack exchange,提问作者Abhishek
相关产品推荐
相关产品推荐

