Skip to main content

从官方 X API v2 迁移到 Sorsa API v3

本页介绍如何将现有集成从官方 Twitter/X API v2 迁移至 Sorsa API v3,涵盖身份验证、端点映射、响应格式变化、分页、HTTP 方法差异、搜索查询语法、错误处理,以及 curl、Python 和 JavaScript 代码示例。 Sorsa API 为只读 API。如果您的集成也会向 X 写入数据(发布推文、发送私信、点赞、关注),请保留官方 API 密钥用于写入,只迁移读取部分。每个新账号均包含 100 次免费请求,无需银行卡,因此可以先验证端点映射,再切换生产流量。
说明: 如需包含成本比较和逐步示例的迁移教程,请阅读博客中的从 Twitter/X API 迁移:开发者完整指南

变化概览

身份验证

官方 API 对仅限应用的请求使用 OAuth 2.0 Bearer 令牌,对用户范围的请求使用 OAuth 1.0a User Context。
Sorsa API 通过 ApiKey 请求头传递单个 API 密钥。在控制台生成密钥。
完整说明见身份验证

端点映射

用户

  • GET /info-batch 每次最多接受 100 个用户名或 ID。重复查询参数,例如 ?usernames=a&usernames=b
  • GET /followersGET /follows 每页最多返回 200 份完整个人资料,包括简介、粉丝数量和认证状态。

推文

  • tweet_link 接受完整推文 URL(https://x.com/user/status/123)或数字 ID("123")。
  • POST /tweet-info-bulk 每次最多返回 100 条推文。使用它代替循环调用 POST /tweet-info,最多可将请求次数减少至原来的 1/100。
  • POST /user-tweets 没有 3,200 条推文的上限。持续分页,直到响应中不再出现 next_cursor,即可获取回溯至账号首条推文的完整时间线。见历史数据

搜索

  • Sorsa /search-tweets 使用 X 网页高级搜索语法。许多基本查询可以直接沿用,但复用查询前应检查 API v2 专用运算符。见搜索运算符
  • POST /mentions 还支持官方 API 未提供的筛选:min_likesmin_repliesmin_retweetssince_dateuntil_date

列表

社群

官方 X API 没有开放社群端点。以下功能仅由 Sorsa 提供。 请求详情及当前可用性说明见列表与社群;迁移社群工作流前,请确认当前是否支持。

验证

这些端点通过一次调用回答关注、互动或成员资格问题。官方 API 没有对应功能;通常需要获取完整列表,再在客户端查找。 营销活动验证

分析(仅 Sorsa 提供)

这些端点索引以加密货币为主的部分账号,包括意见领袖、项目和风投机构。见Sorsa Score 与加密货币分析

实用工具

ID 转换

响应格式变化

这是迁移中最显著的单项变化。官方 v2 使用 dataincludesmeta 封装响应。Sorsa 返回扁平对象,作者资料直接内嵌在每条推文中。

用户资料

官方 X API v2(指定返回字段):
Sorsa API v3:

推文

官方 X API v2(使用 expansions=author_id):
Sorsa API v3:

字段映射

用户字段

推文字段

分页

官方 API 使用查询参数 pagination_token,并返回 meta.next_token。Sorsa 在请求和响应中均使用同一个字段 next_cursor 对于 GET 端点,将 next_cursor 作为查询参数传递:
对于 POST 端点,将 next_cursor 放入 JSON 请求体:
响应始终在顶层返回 next_cursor
next_cursor 缺失或为 null 时,表示没有更多页面。详情见分页

HTTP 方法差异

某些在官方 API 中使用 GET 的端点,在 Sorsa 中使用 POST 一般而言,推文内容、搜索和社群端点使用带 JSON 请求体的 POST;这也包括 /user-tweets,尽管它接收用户标识符。用户、列表和实用工具查询使用 GET,通过查询或路径参数传参。一个例外是 /check-comment:虽然接收推文链接,但使用 GET。如有疑问,请查阅具体端点参考。

代码迁移示例

获取用户资料

迁移前(官方 API):
迁移后(Sorsa API):

搜索推文

迁移前:
迁移后:

分页获取全部粉丝

迁移前:
迁移后:
Sorsa 每页最多返回 200 份完整个人资料。官方 API 通常只返回 ID 和精简用户数据,需要额外查询才能补全资料。

搜索查询语法

Sorsa 使用 X 网页高级搜索语法,与官方 API v2 的运算符集合有所不同。可以按需保留基本关键词、短语、from:to:,再转换 API 专用筛选条件并测试结果。例如,使用 -filter:nativeretweets 排除原生转推。 完整参考:搜索运算符 /mentions 还支持服务端筛选:min_likesmin_repliesmin_retweetssince_dateuntil_date。见追踪提及

错误处理

官方 API 通过结构化 errors 数组返回错误:
Sorsa 返回简化结构:
所有端点的状态码一致:400401403404429500。见错误码 速率限制处理:收到 429 后,应退避并重试。所有端点统一限制为每秒 20 次请求,无需分别跟踪各端点的时间窗口。见速率限制 下面的重试封装可处理这两种 API:

迁移检查清单

  • Authorization: Bearer ... 替换为 ApiKey: ...
  • 移除 OAuth 1.0a 签名逻辑,包括 consumer key、访问令牌和签名生成。
  • 将基础 URL 从 https://api.x.com/2 改为 https://api.sorsa.io/v3
  • 使用上面的表格映射每个端点路径。
  • 将推文、搜索、评论、引用和转推用户端点从 GET 改为 POST。
  • 移除 tweet.fieldsuser.fieldsmedia.fieldsexpansions 参数。
  • 更新响应解析器,移除 data / includes / meta 解包逻辑。
  • 重命名字段,例如 name 改为 display_nametext 改为 full_text
  • 改为直接访问扁平化指标,移除 public_metrics 层。
  • pagination_token / next_token 替换为 next_cursor
  • 更新错误处理以适配简化的 { "message": "..." } 格式。
  • 调整限流逻辑:统一每秒 20 次请求,不再使用各端点独立窗口。
  • API Playground 测试关键端点。
  • 通过 GET /key-usage-info 监测配额。
  • 如仍需写操作(发帖、私信),保留官方 API 密钥。

官方 API 没有对应项的功能

相关参考