Python代码调用Twitter API更新状态失败问题求助
问题解决方案
1. 核心问题分析
你遇到两个关键错误:
- 403权限错误:
api.update_status()是Twitter API v1.1的旧端点,免费基础测试套餐已无法访问该接口,必须改用Twitter API v2的推文创建功能。 - 异常捕获错误:Tweepy 4.x及以上版本已移除
tweepy.TweepError,所有异常类统一放在tweepy.errors模块下。
2. 修改后的可运行代码
import tweepy import os def main(): # 从环境变量读取密钥 consumer_key = os.environ['API_KEY'] consumer_secret = os.environ['API_KEY_SECRET'] access_token = os.environ['ACCESS_TOKEN'] access_token_secret = os.environ['ACCESS_TOKEN_SECRET'] # 初始化API v2客户端(替代原v1.1的tweepy.API) client = tweepy.Client( consumer_key=consumer_key, consumer_secret=consumer_secret, access_token=access_token, access_token_secret=access_token_secret ) tweet_text = "Good morning, Twitter!" try: # 使用API v2的create_tweet方法发推 response = client.create_tweet(text=tweet_text) print(f"推文发布成功,ID: {response.data['id']},内容: {tweet_text}") except tweepy.errors.Forbidden as e: print("权限不足:", e) except tweepy.errors.BadRequest as e: print("请求参数错误:", e) except Exception as e: print("未知错误:", e) if __name__ == "__main__": main()
3. 额外注意事项
- 确保你的Twitter开发者账号已开启API v2的基础访问权限(测试阶段需确认权限配置正确)
- 检查环境变量中的密钥是否完全匹配,避免拼写错误
- 若使用旧版Tweepy,升级到最新版:
pip install --upgrade tweepy
内容的提问来源于stack exchange,提问作者Testy
相关产品推荐
相关产品推荐

