如何用Python+Tweepy通过Twitter API获取帖子提及?遇403错误求解
解决Twitter API 403权限问题及获取帖子提及的正确方法
错误原因
新注册的免费开发者账号(Essential Access)无权访问search_recent_tweets这类公共搜索端点,这类接口需要Basic/Pro级别的访问权限。但你的需求是获取自己帖子的提及,无需使用搜索接口,用专门的用户提及接口即可,该接口免费权限就能调用。
修正步骤及代码
获取你的Twitter用户ID
API调用提及接口需要用户ID,先通过用户名获取ID:import tweepy consumer_key = "你的consumer_key" consumer_secret = "你的consumer_secret" access_token = "你的access_token" access_token_secret = "你的access_token_secret" auth = tweepy.OAuth1UserHandler(consumer_key, consumer_secret, access_token, access_token_secret) client = tweepy.Client(auth=auth) # 替换成你的Twitter用户名 user_response = client.get_user(username="your_username") print("你的用户ID:", user_response.data.id)获取自己帖子的所有提及
用get_users_mentions接口替代搜索接口,完整代码:import tweepy consumer_key = "你的consumer_key" consumer_secret = "你的consumer_secret" access_token = "你的access_token" access_token_secret = "你的access_token_secret" # 注意:OAuth1BearerHandler用于Bearer Token认证,这里用OAuth1密钥应使用OAuth1UserHandler auth = tweepy.OAuth1UserHandler(consumer_key, consumer_secret, access_token, access_token_secret) client = tweepy.Client(auth=auth) # 替换成你的用户ID user_id = "你的用户ID" # 获取提及内容,可调整max_results参数(最大100) mentions = client.get_users_mentions(id=user_id, tweet_fields=["text"], max_results=10) if mentions.data: for tweet in mentions.data: print(tweet.text) else: print("暂无提及内容")
额外说明
如果确实需要使用公共搜索功能(比如搜索关键词),需在Twitter开发者平台升级到Basic Access(需绑定信用卡,每月有免费调用额度),但针对你的需求,get_users_mentions完全满足要求,无需升级权限。
内容的提问来源于stack exchange,提问作者Adrian Botteon
相关产品推荐
相关产品推荐

