使用Tweepy获取推文点赞/转发用户返回空结果的问题
问题
我尝试编写函数获取某条推文的点赞用户列表,使用了Tweepy的get_liking_users函数。此前已成功获取过推文信息,当前使用的推文ID经Twitter UI确认确实有点赞和转发,且单独请求该ID的推文文本也成功。
我的代码如下:
def findLikers(): client = tweepy.Client(bearer_token='XXX') id = 'XXX' users = client.get_liking_users(id=id, max_results=10) print(type(users)) print(users)
但运行后得到空响应,输出为:
<class 'tweepy.client.Response'> Response(data=None, includes={}, errors=[], meta={'result_count': 0})
我确认推文ID正确,但调用get_liking_users或get_retweeters时始终返回data=None,尝试其他推文ID结果一致。参考相关教程和帖子仍无法解决,请问哪里操作有误?
解决思路与方案
- 权限不足是核心问题:Twitter API v2的
get_liking_users和get_retweeters接口,普通免费版开发者账号的Bearer Token没有访问权限,必须升级到**Academic Research(学术研究)或Business(商业)**级别的账号才能调用这些端点。你可以登录Twitter开发者平台,查看自己的账号权限等级,确认是否符合要求。 - 检查推文隐私设置:如果目标推文来自私有账号(用户设置了保护),即使你能在UI看到点赞,API也不会返回点赞用户列表——这类隐私数据只有推文作者本人能通过API获取。
- 更新Tweepy版本:旧版Tweepy对API v2的支持可能存在兼容问题,执行
pip install --upgrade tweepy更新到最新版本再尝试。 - 再次验证Token权限:即使能获取推文文本,也要确认你的Bearer Token包含
tweet.read和users.read权限(在开发者平台的Token详情页可以查看),不过核心还是账号权限等级的问题。 - 确认推文ID无误:虽然你说ID正确,但可以用
client.get_tweet(id)再验证一次,确保传入的ID对应目标推文,避免因ID格式错误(比如带了URL后缀)导致的问题。
内容的提问来源于stack exchange,提问作者marley
相关产品推荐
相关产品推荐

