Skip to main content

通过 API 验证 Twitter 互动行为:关注、转推、评论和引用

X(原 Twitter)奖励活动通常要求用户关注账号、转推帖子、发表评论或加入社群。公平发放奖励前,需要确认参与者确实完成了所声称的行为。人工检查难以扩展到大量用户,而依赖自我声明的勾选框容易吸引机器人和欺诈。 Sorsa API 提供专门的验证端点,回答用户是否关注某账号、转推或评论某推文、加入某社群等问题。每项检查通过一次 API 调用返回明确的是/否或状态结果,帮助你基于可验证、可审计的数据构建自动化任务系统、抽奖平台、推荐计划和互动活动。 本指南使用可运行代码介绍所有验证端点,并将它们组合成完整活动验证管道。新账号均有 100 次免费请求,无需信用卡,适用于所有端点,可先验证完整流程再选择套餐。
注意: 更多工作流和端到端示例见博客上的 Twitter 互动验证 API:完整活动指南

可用的验证检查

以下列出可验证的行为、对应端点及返回结果: 无法验证的行为:点赞。 X 在 2024 年将点赞设为私有,因此包括官方 API 在内的任何 API 都无法检查特定用户是否给特定推文点了赞。请围绕以上五类行为设计活动。

检查 1:用户是否关注了账号?

最常见的活动任务,例如“关注 @YourBrand 参与抽奖”。 端点:POST /v3/check-follow 此端点检查“user_2 是否关注 user_1”。将 user_1 设为品牌,即被关注账号;将 user_2 设为参与者。

最简单的示例

响应:

参数

双方各提供一种标识符:

Python

如果 user_protectedtrue,说明参与者账号为私有,无法验证其关注关系。

检查 2:用户是否转推了推文?

例如“转推此帖即可参与”。端点每次检查最多 100 次转推;更多转推需要分页。 端点:POST /v3/check-retweet

参数

Python

每次调用检查最近 100 次转推。多数活动一次请求即可,因为用户通常在活动开始后不久转推,位于最近一批。热门推文中如果用户转推较早,应通过 next_cursor 继续分页。

检查 3:用户是否引用了推文?

例如“引用此帖并分享想法”。/check-quoted 区分引用推文与普通转推,并返回状态字符串。 端点:POST /v3/check-quoted

Python

响应

status 返回三种值之一:"quoted"(用户发布了引用推文)、"retweet"(未添加文字的转推)、"not_found"(未发现两种行为)。发现引用时还会返回日期和正文,可用于最低字数、必需话题标签或不当用语等内容质量检查。

检查 4:用户是否评论了推文?

例如“在此帖下发表评论”。这是唯一使用 GET 而非 POST 的活动验证端点。 端点:GET /v3/check-comment

参数(查询字符串)

Python

commentedtrue 时,响应包含评论本身的完整 tweet 对象,包括正文、互动指标和时间戳。除了确认回复存在,还可检查最低字数、必需话题标签或排除仅有表情符号的回复。

检查 5:用户是否为社群成员?

将此项设为活动要求之前,请向支持团队确认当前社群数据可用性,并阅读列表与社群中的可用性说明。 例如“加入我们的 X 社群即可参与”,适用于以社群成员身份为前提的活动。 端点:POST /v3/check-community-member

Python

社群 ID 是社群 URL(x.com/i/communities/<id>)中的数字字符串。

构建活动验证管道

真实活动通常要求完成多项任务。下方模式对单个参与者执行全部五项检查,返回结构化结果,并对评论和引用应用质量规则。
五项检查各读第一页时消耗五次请求。转推分页和重试会增加请求,因此五次只是基线,并非固定成本。达到页面预算上限属于验证未完成,不能证明参与者未完成任务。

批量验证参与者

活动有数千名参与者时,可以批量验证。下方模式遵守速率限制,将结果写入 CSV,并可恢复进度:每处理一位参与者就写入一行,避免崩溃后丢失全部进展。
循环在参与者之间等待,并对 429 最多重试三次,但单个参与者的转推分页还可能增加调用。生产工作进程池应使用共享限流器。实际吞吐取决于分页深度和响应延迟。未完成或失败的参与者应保留重试资格,不能直接记为未完成任务。

验证账号所有权

用户参与之前,可能需要确认其确实拥有所提供的 X 用户名。常见方式:
  1. 生成唯一代码,例如 VERIFY-a8f3b2,并展示给用户。
  2. 要求用户发布包含该代码的推文。
  3. 使用 /user-tweets 获取最近推文,检查代码是否出现。
每个验证挑战应绑定登录参与者和目标 X 账号,设置较短有效期,并且只能使用一次。核对匹配推文的作者和创建时间。示例检查作者和文本;应用仍需实现挑战存储、过期和一次性消费。验证后参与者可删除推文。

防欺诈考虑

将下列检查作为可配置的资格或人工审核标准。账号年龄和计数不能证明账号是否真实:
  • 最低账号年龄。 通过 /info 获取资料并检查 created_at。可拒绝最近 30 天创建的账号,因为许多机器人群使用新账号。
  • 最低活跃度。 检查 tweets_countfollowers_count。较低数值可触发额外审核,但不能据此断定账号是机器人。
  • 评论质量。 /check-comment 返回完整正文,可检查最低字数、必需关键词或话题标签,并排除单字符或仅表情回复。
  • 引用质量。 /check-quoted 返回引用正文,可应用与评论相同的质量规则。
  • 完成速度。 过快完成只是审核信号,不是自动化的证据。记录时间戳并标记异常快速完成的情况。
在五项验证前运行此检查。如果 is_legitimate_account 返回 False,可对本来就会被拒绝的参与者省去五次验证请求。

按影响力为参与者评分

不同参与者的潜在传播范围不同。对活动而言,50,000 位粉丝账号的转推价值可能高于只有 50 位粉丝的账号。通过 /info 获取参与者资料,并按粉丝数为奖励加权。
加密货币活动可将粉丝数倍数替换为 Sorsa Score,衡量账号在加密货币 KOL、项目和 VC 中的认可度。

关于点赞

X(Twitter)在 2024 年将点赞设为私有。平台不再通过任何公开 API 暴露具体哪些用户点赞了特定推文,包括 Sorsa、官方 X API 和其他第三方工具。如果活动之前要求“点赞此推文”,请改为仍可完整验证的转推或评论。

后续步骤

  • 搜索推文:按关键词查找活动相关推文,扩大监测范围
  • 追踪提及:同时追踪自然品牌提及与活动带来的提及
  • 实时监测:轮询新行为,实现近实时验证
  • 粉丝与关注:提取自身粉丝列表,与活动参与者交叉核对
  • 价格:估算活动成本,完整验证的基线为每人五次请求
  • API 参考:全部验证端点的完整规范