Skip to main content
通过六种方法在 X(Twitter)发现相关用户。每种方法从不同信号出发:资料关键词、粉丝、社群成员身份、近期推文、认证状态或特定帖子的互动。按用户 ID 合并结果,构建去重后的受众列表。 详细教程见如何通过 API 在 Twitter 找到目标受众

选择方法

每页数量可能变化。使用 next_cursor 继续读取,不要把较短的页面视为末尾。

环境设置与通用分页

所有示例使用 https://api.sorsa.io/v3,并需要 ApiKey 请求头。Python 示例应放在下方初始化代码之后,在同一脚本中运行。使用 python -m pip install requests 安装 requests,然后设置 SORSA_API_KEY 环境变量。JavaScript 示例需要支持 fetch 的服务端环境,例如 Node.js 18 或更高版本。
max_pages 限制请求用量,达到上限时可能仍有结果未读取。示例遇到 HTTP 错误会停止。生产任务应参照错误码,对 429 和临时服务器错误加入有限重试,并根据速率限制统一协调共享密钥的工作进程。通用机制见身份验证分页

方法 1:简介关键词搜索

端点:POST /v3/search-users 按职位、头衔、兴趣等关键词或短语搜索账号。检查返回的简介、显示名称和用户名,判断结果是否符合目标受众。

Python

JavaScript

方法 2:提取竞争对手粉丝

端点:GET /v3/followers 获取相关公开账号的粉丝,每次最多 200 份资料。提供 username(不含 @)、user_id(字符串)或 user_link(完整资料 URL)其中一种。需要继续时传入可选的 next_cursor

多个种子账号的受众重叠

对于每个种子账号,每位用户只计数一次。运行前替换示例中的占位用户名:
这衡量的是已获取页面中的重叠,并不一定涵盖完整粉丝列表。详细教程见粉丝与关注

方法 3:发现社群成员

先检查可用性: 本节介绍社群请求格式。加入新工作流前,请向支持团队确认当前数据可用性,详情见列表与社群
端点:POST /v3/community-members 获取 X 社群成员。成员身份是有用的兴趣信号,但不能证明当前活跃度或购买意图。
community_link 接受字符串形式的数字 ID 或完整社群 URL。
响应包含精简资料:idusernamedisplay_nameprofile_image_urlverifiedprotected。按简介或粉丝数筛选前,应通过批量用户资料补全这些 ID,每次最多 100 个。相关端点见列表与社群

方法 4:根据意图挖掘推文

端点:POST /v3/search-tweets 搜索近期讨论,提取去重后的作者。保留完整用户对象,便于随后与资料和粉丝结果合并。

常见查询模式

将方括号中的占位内容替换为你的类别、用户名、工具或话题。括号确保共享筛选条件同时作用于 OR 两边。 限定观察窗口时,添加 since:until:。将关键词匹配视为购买意图之前,应阅读匹配帖子。参阅搜索运算符搜索推文

方法 5:分析认证粉丝

端点:GET /v3/verified-followers 使用与 /followers 相同的标识符和分页方式获取认证粉丝。认证状态只是细分属性,相关性仍需单独评估。

方法 6:转推者与引用者

端点:POST /v3/retweetersPOST /v3/quotes /retweeters 返回用户资料。/quotes 返回引用推文对象,其中 user 为引用者,full_text 为附加评论。
辅助函数 get_quoters 将引用推文转换为去重的用户资料,供下方工作流使用。如果需要评论内容,应保留原始 quote_tweets,并在转换之前分析 full_text

组合多种方法

按字符串 ID 合并用户对象列表,同时为每个账号保留来源集合。来源数量更高表示该账号出现在更多选定输入中;这只是优先级参考,不是置信分数。
补全精简资料后再加入社群成员,也可以加入 get_retweetersget_quoters 返回的用户列表。

质量筛选

为项目制定明确的选择标准。以下筛选器检查资料完整度、账号年龄和基本计数,不会检测机器人,也不能证明近期活跃度。若活跃度重要,应查看近期推文。
示例会排除创建日期缺失或无法解析的账号。请根据使用场景调整这一策略和阈值。

导出到 CSV

去重和筛选后导出用户对象。先将推文结果转换为 user 对象;需要缺失字段时,先补全社群精简资料。
缺失值保留为空,而不是变为零。导入电子表格时,将 user_id 列设为文本,以保留完整 ID。

后续步骤