Twitter机器人调用tweepy的update_status发推失败返回403错误如何解决
报错原因
- 你调用的
api.update_status是Twitter API v1.1的端点,该类端点仅对拥有Elevated权限的开发者开放。你当前持有的Essential权限仅可调用Twitter API v2的相关接口,这是2020年Twitter调整API权限体系后新增的规则,与你的代码逻辑、发送的推文内容无关。 - 你参考的2020年教程发布时权限分级规则尚未上线,因此对应代码可以正常运行,并非tweepy基础用法发生变更。
修复代码
无需申请Elevated权限,直接改用Tweepy封装的Twitter API v2接口发送推文即可,修改后的代码如下:
import tweepy consumer_key = 'xxx' consumer_secret = 'xxx' access_token = 'xxx' access_token_secret = 'xxx' # 初始化V2版本的API客户端 client = tweepy.Client( consumer_key=consumer_key, consumer_secret=consumer_secret, access_token=access_token, access_token_secret=access_token_secret ) # 发送推文 response = client.create_tweet(text='1') # 可打印返回结果确认发送状态 print(response.data)
补充说明
- 确保本地安装的tweepy版本≥4.0,该版本开始支持Twitter API v2接口的封装调用,版本过低可执行
pip install tweepy --upgrade进行升级。 - 前往Twitter开发者后台确认你创建的应用已开启读写权限,且生成的access token对应已开启的权限设置。
内容的提问来源于stack exchange,提问作者alan gorman
相关产品推荐
相关产品推荐

