You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Twitter API v2如何直接查询指定用户是否点赞特定推文

高赞推文点赞用户校验性能优化方案

你当前的实现逻辑性能瓶颈非常明确:热门推文的点赞用户量级可达十万甚至百万级,全量拉取遍历会消耗大量API请求配额,响应延迟极高。

Twitter v2 API 目前没有为tweetLikedBy(推文点赞用户列表)接口提供按用户ID过滤的参数,不支持直接传入目标用户ID返回匹配结果,也没有开放单点校验「某用户是否点赞某条推文」的独立接口,但可以通过反向查询的方案把遍历数据量级降低几个数量级,完全满足性能要求。

最优实现思路

放弃拉取推文的全量点赞用户列表,改为调用用户维度的点赞推文接口,拉取目标用户自己的点赞列表,遍历判断目标推文是否存在于列表中:

  • 普通用户的总点赞量远低于热门推文的总点赞量,需要遍历的数据集规模从百万级降到千级甚至百级
  • 遍历过程中只要匹配到目标推文ID就可以立刻终止分页拉取,不需要拉完所有数据
  • 单页请求拉取接口支持的最大上限100条结果,进一步减少请求次数

优化后代码

const client = twitterApi({ token, secret })
// 拉取待校验目标用户的点赞推文列表
const likedTweetsPaginator = await client.v2.userLikedTweets(userIdTwitter, {
  asPaginator: true,
  max_results: 100, // 单页拉取最大允许值,减少请求轮次
})

for await (const tweet of likedTweetsPaginator) {
  if (tweet.id === target) {
    await task.related('users').attach([userId])
    return response.ok({})
  }
}

return response.notFound()

注意事项

  • 如果你使用的是Twitter API基础访问层级,接口最多只能回溯目标用户最近800条点赞记录,如果目标推文发布时间极早、且用户总点赞量超过800,存在小概率漏判可能,需要更高准确率可以申请提升API访问权限
  • 高并发场景下可以给校验过的「用户ID-推文ID」点赞关系加10~30分钟的短缓存,避免重复请求接口消耗配额

内容的提问来源于stack exchange,提问作者Leonardo Nascimento

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 16:48:29