使用Tweepy调用Twitter API发推文时遇403权限错误求助
解决Twitter API v2 + Tweepy 403权限错误(无法发送推文)
这个403错误的核心原因是你的Twitter应用没有配置OAuth 1.0a读写权限,且当前使用的访问令牌是基于旧权限生成的,无法调用create_tweet这类需要写入权限的端点。
步骤1:更新Twitter应用的权限设置
- 登录Twitter开发者平台,进入你的应用页面
- 点击「Settings」标签,找到「User authentication settings」
- 在「Permissions」部分,选择Read and write(若需私信功能可选「Read, write, and direct messages」)
- 保存设置后,必须重新生成访问令牌和访问令牌密钥(旧令牌的权限不会自动更新)
步骤2:修正Tweepy代码
发推不需要Bearer Token(它仅用于只读的应用上下文请求),直接使用OAuth1.0a的读写令牌即可,修正后的代码:
import tweepy # 替换为你重新生成的密钥和令牌 CONSUMER_KEY = 'xxx' CONSUMER_SECRET = 'xxx' ACCESS_KEY = '新生成的读写访问令牌' ACCESS_SECRET = '新生成的读写访问令牌密钥' # 初始化带OAuth1.0a认证的Client api = tweepy.Client( consumer_key=CONSUMER_KEY, consumer_secret=CONSUMER_SECRET, access_token=ACCESS_KEY, access_token_secret=ACCESS_SECRET ) # 发送推文 try: response = api.create_tweet(text='I want to Tweet') print(f"推文发送成功,ID: {response.data['id']}") except tweepy.TweepyException as e: print(f"错误: {e}")
额外注意事项
- 确保你的开发者账号已通过基础审核,普通个人账号也能申请读写权限
- 确认应用的认证流程是OAuth 1.0a(而非仅OAuth 2.0 Bearer Token),因为写入操作必须基于用户上下文的认证
内容的提问来源于stack exchange,提问作者Evan
相关产品推荐
相关产品推荐

