已订阅Twitter API基础付费版,如何解决403 Forbidden错误?
解决方案:Twitter API基础付费版403(453)错误修复
问题根源
你代码里用的tweepy.API.search_tweets是Twitter API v1.1的搜索端点,但基础付费版仅开放v2的搜索接口,v1.1的搜索端点不在权限范围内,所以触发453错误。
修正代码
直接使用你已经初始化但未用到的Tweepy v2客户端调用v2搜索接口,示例如下:
import tweepy consumer_key = "XXXXXXredactedXXXXXX" consumer_secret = "XXXXXXredactedXXXXXX" access_token = "XXXXXXredactedXXXXXX" access_token_secret = "XXXXXXredactedXXXXXX" # 初始化v2客户端 client = tweepy.Client( consumer_key=consumer_key, consumer_secret=consumer_secret, access_token=access_token, access_token_secret=access_token_secret ) query = 'irregardless' max_tweets = 100 # 调用v2最近推文搜索接口(基础版仅支持最近7天的推文) # tweet_fields指定需获取的字段,比如文本、创建时间 response = client.search_recent_tweets( query=query, max_results=max_tweets, tweet_fields=['created_at', 'text'] ) # 提取推文内容 searched_tweets = [] if response.data: for tweet in response.data: searched_tweets.append({ 'text': tweet.text, 'created_at': tweet.created_at }) # 打印结果示例 for tweet in searched_tweets[:5]: print(f"{tweet['created_at']}: {tweet['text']}")
关键说明
- 基础付费版仅支持调用
search_recent_tweets,获取最近7天的推文;如需更早的历史推文,需升级权限版本。 - v2接口返回结构化对象,需通过
tweet_fields指定所需字段,默认仅返回推文ID。 - 无需再初始化
tweepy.API,直接用client操作v2接口即可。
内容的提问来源于stack exchange,提问作者Scott
相关产品推荐
相关产品推荐

