使用Tweepy获取个人推文遇453/403错误,是否需付费API权限?
问题:使用Tweepy获取自身推文是否需要付费API权限?
我正在编写Python脚本,使用Tweepy获取自己的推文,尝试了两个版本的代码分别触发453和403错误,具体信息如下。我拥有Twitter API的免费访问权限,且已创建关联项目的应用(截图:
),请问实现该功能是否需要付费访问权限?
第一个报错版本代码
import tweepy CONSUMER_KEY = '' CONSUMER_SECRET = '' ACCESS_TOKEN = '' ACCESS_SECRET = '' authenticator = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET) authenticator.set_access_token(ACCESS_TOKEN, ACCESS_SECRET) api = tweepy.API(authenticator, wait_on_rate_limit=True) query = 'from:my_screen_name -is:retweet' tweet_cursor = tweepy.Cursor(api.search_tweets, q= query, lang="en", tweet_mode="extended").items(100) tweets = [tweet.full_text for tweet in tweet_cursor] print(tweets)
错误信息
453 - 你当前仅能访问部分Twitter API v2端点和有限的v1.1端点(如media post、oauth)。若需访问此端点,可能需要更高的权限级别。
第二个报错版本代码
client = tweepy.Client( consumer_key=CONSUMER_KEY, consumer_secret=CONSUMER_SECRET, access_token=ACCESS_TOKEN, access_token_secret=ACCESS_SECRET, bearer_token=BEARER_TOKEN ) query = 'from:my_screen_name -is:retweet' tweets = client.search_recent_tweets(query=query, tweet_fields=['context_annotations', 'created_at'], max_results=100) for tweet in tweets.data: print(tweet.text)
错误信息
向Twitter API v2端点发起请求进行身份验证时,必须使用关联到项目的Twitter开发者应用的密钥和令牌。你可以通过开发者门户创建项目。
解答
不需要付费权限,免费版API完全能实现获取自身推文的功能,问题出在代码的端点选择和认证配置上:
第一个代码的问题:
api.search_tweets调用的是Twitter API v1.1的搜索接口,而免费权限已经不再开放这个接口的访问,所以触发453错误。免费版必须使用API v2的接口。第二个代码的问题:错误提示认证不通过,尽管你提到应用已关联项目,但大概率是这几个原因:
BEARER_TOKEN填写错误,或者没有从关联项目的应用中正确获取;- 应用和项目的关联没做好,去开发者平台确认应用是否在项目的“已关联应用”列表里;
- 应用权限没开对,要确保开启了“读取推文”的基础权限。
可用的免费版代码示例
import tweepy # 替换为你的Bearer Token(从开发者平台项目应用中获取) BEARER_TOKEN = 'your_bearer_token_here' # 仅用Bearer Token初始化Client,避免认证冲突 client = tweepy.Client(bearer_token=BEARER_TOKEN) # 替换为你的Twitter用户名(不带@) query = 'from:your_screen_name -is:retweet' # 免费版search_recent_tweets只能获取最近7天的推文,单次请求最多100条 response = client.search_recent_tweets(query=query, max_results=100, tweet_fields=['created_at']) if response.data: for tweet in response.data: print(f"{tweet.created_at}: {tweet.text}") else: print("没有找到符合条件的推文")
注意:如果需要获取超过7天的历史推文,免费版确实做不到,得升级付费层级;但仅获取自身最近7天的推文,免费权限足够用。
内容的提问来源于stack exchange,提问作者simplfuzz
相关产品推荐
相关产品推荐

