通过 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_protected 为 true,说明参与者账号为私有,无法验证其关注关系。
检查 2:用户是否转推了推文?
例如“转推此帖即可参与”。端点每次检查最多 100 次转推;更多转推需要分页。 端点:POST /v3/check-retweet
参数
Python
next_cursor 继续分页。
检查 3:用户是否引用了推文?
例如“引用此帖并分享想法”。/check-quoted 区分引用推文与普通转推,并返回状态字符串。
端点:POST /v3/check-quoted
Python
响应
status 返回三种值之一:"quoted"(用户发布了引用推文)、"retweet"(未添加文字的转推)、"not_found"(未发现两种行为)。发现引用时还会返回日期和正文,可用于最低字数、必需话题标签或不当用语等内容质量检查。
检查 4:用户是否评论了推文?
例如“在此帖下发表评论”。这是唯一使用 GET 而非 POST 的活动验证端点。 端点:GET /v3/check-comment
参数(查询字符串)
Python
commented 为 true 时,响应包含评论本身的完整 tweet 对象,包括正文、互动指标和时间戳。除了确认回复存在,还可检查最低字数、必需话题标签或排除仅有表情符号的回复。
检查 5:用户是否为社群成员?
将此项设为活动要求之前,请向支持团队确认当前社群数据可用性,并阅读列表与社群中的可用性说明。 例如“加入我们的 X 社群即可参与”,适用于以社群成员身份为前提的活动。 端点:POST /v3/check-community-member
Python
x.com/i/communities/<id>)中的数字字符串。
构建活动验证管道
真实活动通常要求完成多项任务。下方模式对单个参与者执行全部五项检查,返回结构化结果,并对评论和引用应用质量规则。批量验证参与者
活动有数千名参与者时,可以批量验证。下方模式遵守速率限制,将结果写入 CSV,并可恢复进度:每处理一位参与者就写入一行,避免崩溃后丢失全部进展。429 最多重试三次,但单个参与者的转推分页还可能增加调用。生产工作进程池应使用共享限流器。实际吞吐取决于分页深度和响应延迟。未完成或失败的参与者应保留重试资格,不能直接记为未完成任务。
验证账号所有权
用户参与之前,可能需要确认其确实拥有所提供的 X 用户名。常见方式:- 生成唯一代码,例如
VERIFY-a8f3b2,并展示给用户。 - 要求用户发布包含该代码的推文。
- 使用
/user-tweets获取最近推文,检查代码是否出现。
防欺诈考虑
将下列检查作为可配置的资格或人工审核标准。账号年龄和计数不能证明账号是否真实:- 最低账号年龄。 通过
/info获取资料并检查created_at。可拒绝最近 30 天创建的账号,因为许多机器人群使用新账号。 - 最低活跃度。 检查
tweets_count和followers_count。较低数值可触发额外审核,但不能据此断定账号是机器人。 - 评论质量。
/check-comment返回完整正文,可检查最低字数、必需关键词或话题标签,并排除单字符或仅表情回复。 - 引用质量。
/check-quoted返回引用正文,可应用与评论相同的质量规则。 - 完成速度。 过快完成只是审核信号,不是自动化的证据。记录时间戳并标记异常快速完成的情况。
is_legitimate_account 返回 False,可对本来就会被拒绝的参与者省去五次验证请求。
按影响力为参与者评分
不同参与者的潜在传播范围不同。对活动而言,50,000 位粉丝账号的转推价值可能高于只有 50 位粉丝的账号。通过/info 获取参与者资料,并按粉丝数为奖励加权。