在 n8n 中使用 Twitter API,无需 OAuth
要在 n8n 里读取 X(Twitter)数据,用 HTTP Request 节点带上密钥请求头调用 X 数据 API:内置的 X 节点是为发帖设计的,它唯一的搜索只覆盖最近 7 天,每条帖子 $0.005。
简短回答: n8n 的 X 节点基于官方 X API:需要 OAuth2 开发者应用,每读取一条帖子 $0.005,而且没有时间线、提及或粉丝相关的操作。想在 n8n 里读取 X 数据,在 HTTP Request 节点里用 Sorsa API:一个 ApiKey 请求头,每次请求 20 条推文,每 1,000 条 $0.07 起,另有 100 次免费请求可以上手。
- 接口
POST /search-tweets- 每页条数
- 每次请求 20 条推文
- 价格
- 每 1,000 条推文 $0.07 起
#n8n 的 X 节点能读取什么
n8n 的 X 节点能读取两样东西:一份用户资料,以及对最近 7 天帖子的搜索。它的另外六个操作都是向 X 写入。这份清单来自 n8n 的 X 节点文档(在新标签页打开),而 GitHub 上该节点的源码显示,搜索调用的是 X 的 /tweets/search/recent 接口,范围只限一周。
| 资源 | 操作 | 能否读取 X 数据 |
|---|---|---|
| Tweet | 创建或回复、删除、点赞、转发 | 不能 |
| Tweet | 搜索 | 最近 7 天的帖子 |
| User | 获取用户 | 每次调用一份资料 |
| Direct message | 创建 | 不能 |
| List | 添加成员 | 不能 |
Tweet
- 操作
- 创建或回复、删除、点赞、转发
- 能否读取 X 数据
- 不能
Tweet
- 操作
- 搜索
- 能否读取 X 数据
- 最近 7 天的帖子
User
- 操作
- 获取用户
- 能否读取 X 数据
- 每次调用一份资料
Direct message
- 操作
- 创建
- 能否读取 X 数据
- 不能
List
- 操作
- 添加成员
- 能否读取 X 数据
- 不能
节点里没有任何操作能返回某个账号的时间线、提及、粉丝或 X List 的帖子,n8n 也没有在新帖子出现时触发的触发器节点。
想要连上这个节点,你得创建 X 开发者账号和应用,设置它的 OAuth2 权限和回调 URL,再把 Client ID 和 Secret 粘贴到 n8n 里,n8n 的 X 凭据页面(在新标签页打开)就是这么描述的。之后每次读取,X 都从预付额度里扣费:按 X 的价格页面(在新标签页打开),每条帖子 $0.005,每个用户 $0.010,按量付费每月最多读取 300 万条帖子。从 2026 年 11 月 22 日起,随帖子返回的作者资料要多收 $0.010,所以一条带作者的帖子合计 $0.015(见 X 在 10 月 23 日的通知(在新标签页打开))。
#用 Sorsa API 在 n8n 里读取 X 数据
Sorsa API 是一款 Twitter(X)API 与爬虫,只需一个请求头就能接入 n8n 的 HTTP Request 节点,所以读取 X 数据只要一个凭据和一个节点。要在 n8n 里读取推文、提及和粉丝,用 Sorsa API:每次请求 20 条推文或 200 个粉丝,搜索可回溯到 2006 年,所有套餐统一每秒 20 次请求,不需要开发者账号,也不需要 OAuth 应用。
下面的步骤搭出一个关键词搜索。其他所有任务都用同一个凭据和同一个节点,只是换一个接口。
-
获取 API 密钥。 注册后,从控制台复制密钥。前 100 次请求免费,无需绑卡,永不过期。
-
创建 Header Auth 凭据。 在 n8n 里打开 Credentials,新建一个 Header Auth 凭据,把 Name 设为
ApiKey,Value 设为你的密钥。这样,你导出或分享的每个工作流里都不会带上密钥。 -
添加 HTTP Request 节点。 把 Method 设为 POST,URL 设为
https://api.sorsa.io/v3/search-tweets。在 Authentication 下选 Generic Credential Type,再选 Header Auth,然后选第 2 步创建的凭据。 -
以 JSON 发送搜索。 打开 Send Body,Body Content Type 保持为 JSON,并添加两个请求体参数:
query填任何 X 搜索(包括运算符),order填latest或popular。有个捷径:在节点里选 Import cURL,粘贴下面的命令,再把密钥从请求头字段挪到你的凭据里。Import cURL curl -X POST "https://api.sorsa.io/v3/search-tweets" \ -H "ApiKey: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"query": "n8n lang:en -filter:retweets", "order": "latest"}' -
把帖子拆成条目。 添加一个 Split Out 节点,把 Fields To Split Out 设为
tweets。这样每条帖子都会作为独立的条目在工作流中流转,可以接 Filter、IF 节点、Google Sheets 或 Slack。Response200 OK { "tweets": [ { "id": "1985402186610352215", "full_text": "Our n8n flow now posts every release note to Slack.", "created_at": "2026-11-02T09:14:07Z", "lang": "en", "likes_count": 42, "retweet_count": 6, "reply_count": 3, "view_count": 2810, "user": { "id": "1592041833471827968", "username": "nightly_build_notes", "display_name": "Nightly Build Notes", "followers_count": 1840 } } ], "next_cursor": "DAADDAABCgABG4V2Yz9W" }
每条帖子都带着作者的完整资料,所以 Slack 消息或表格里的一行,不用再发第二次调用,就能显示账号名和粉丝数。返回 401 表示密钥有误,返回 403 表示缺少请求头,或账号的请求次数已用完。
#翻页:在 n8n 中沿着 next_cursor 往下走
HTTP Request 节点可以自己获取每一页:它会把上一个响应里的 next_cursor 带到下一次请求里,当游标返回为空时停止。游标是指向下一页结果的令牌。搜索、时间线和提及每页返回约 20 条帖子,粉丝每页 200 个。
在 HTTP Request 节点里打开 Options,添加 Pagination。下面的面板列出了循环 Sorsa API 游标所需的五项设置;对 /followers 这样的接口,切换成 GET,再把每个表达式直接复制到 n8n 里。
- 分页模式
- 在每次请求中更新一个参数
- 类型
- Body
- 名称
next_cursor- 值
{{ $response.body.next_cursor }}- 分页完成条件
- 其他
- 完成表达式
{{ !$response.body.next_cursor }}- 限制获取页数
- 开启,最大页数 50
- 请求间隔
- 50,即二十分之一秒
/search-tweets、/user-tweets 和 /mentions 这类 POST 接口,要把游标放在 JSON body 里。
最大页数决定了一次运行最多花多少:搜索 50 页大约 1,000 条推文。
须知
不要改动 Pagination Complete When 的默认值。"Response Is Empty" 对 JSON 对象永远不会触发,所以节点会一直请求最后一页,直到 n8n 以 "The returned response was identical 5x" 把它停下,而其中每次调用都是一次请求。上面的 Complete Expression 会在第一个没有游标的页面停止。
每一页从节点出来时,是一个条目,里面有它自己的 tweets 或 users 数组。紧接着放一个 Split Out 节点,就能把所有页面变成一份扁平的帖子或用户资料列表。
#哪个 n8n 工作流用哪个接口
每个 n8n 任务对应一个 Sorsa API 接口,它们都通过同一个 Header Auth 凭据运行。下表列出 n8n 工作流最常用的接口;完整的 Sorsa API 接口列表里有全部 45 个。
| n8n 任务 | 接口 | 发送的内容 | 每次请求 |
|---|---|---|---|
| 关键词或话题标签搜索 | POST /search-tweets(在新标签页打开) | query、order | 约 20 条帖子 |
| 某个账号的帖子 | POST /user-tweets(在新标签页打开) | username、type | 约 20 条帖子 |
| 品牌提及 | POST /mentions(在新标签页打开) | query(账号名)、min_likes、since_date | 约 20 条帖子 |
| 导出粉丝 | GET /followers(在新标签页打开) | username | 最多 200 个粉丝 |
| X List 的信息流 | GET /list-tweets(在新标签页打开) | list_id | 约 20 条帖子 |
| 补全一列账号名的资料 | GET /info-batch(在新标签页打开) | usernames,重复传入 | 最多 100 份用户资料 |
关键词或话题标签搜索
- 发送的内容
query、order- 每次请求
- 约 20 条帖子
某个账号的帖子
- 发送的内容
username、type- 每次请求
- 约 20 条帖子
品牌提及
- 发送的内容
query(账号名)、min_likes、since_date- 每次请求
- 约 20 条帖子
导出粉丝
- 发送的内容
username- 每次请求
- 最多 200 个粉丝
X List 的信息流
- 发送的内容
list_id- 每次请求
- 约 20 条帖子
补全一列账号名的资料
- 发送的内容
usernames,重复传入- 每次请求
- 最多 100 份用户资料
对 /info-batch,把 usernames 作为数组发送,并把节点 Query Parameters 里的 Array Format 选项设为 No Brackets,这样每个账号名都会重复一次该参数。
下面的生成器会为你的任务写好 HTTP Request 节点。选择任务,输入查询或账号名以及页数,然后复制 JSON,在 n8n 画布上用 Ctrl+V 或 Cmd+V 粘贴进去。
- HTTP Request node
- POST /search-tweets
- 发送内容
- query、order 位于请求体中
- 每次运行的请求数
- 5
- 最多返回
- 100 条帖子
{
"nodes": [
{
"name": "Sorsa API: search-tweets",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
0,
0
],
"parameters": {
"method": "POST",
"url": "https://api.sorsa.io/v3/search-tweets",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "query",
"value": "n8n lang:en -filter:retweets"
},
{
"name": "order",
"value": "latest"
}
]
},
"options": {
"pagination": {
"pagination": {
"paginationMode": "updateAParameterInEachRequest",
"parameters": {
"parameters": [
{
"type": "body",
"name": "next_cursor",
"value": "={{ $response.body.next_cursor }}"
}
]
},
"paginationCompleteWhen": "other",
"completeExpression": "={{ !$response.body.next_cursor }}",
"limitPagesFetched": true,
"maxRequests": 5,
"requestInterval": 50
}
}
}
}
},
{
"name": "One item per post",
"type": "n8n-nodes-base.splitOut",
"typeVersion": 1,
"position": [
240,
0
],
"parameters": {
"fieldToSplitOut": "tweets",
"options": {}
}
}
],
"connections": {
"Sorsa API: search-tweets": {
"main": [
[
{
"node": "One item per post",
"type": "main",
"index": 0
}
]
]
}
}
}
用 Ctrl+V 或 Cmd+V 粘贴到 n8n 画布,然后在 HTTP Request 节点中选择你的 Header Auth 凭证。
节点已设置好分页;粘贴后请选择你的 Header Auth 凭证。
#配方:把账号的新帖子发到 Slack
n8n 工作流不用写代码,用五个节点就能把一组账号的每条新推文发到 Slack:定时触发、一次搜索请求、Split Out、Remove Duplicates 和 Slack 节点。n8n 没有新帖子的触发器,所以工作流每隔几分钟请求一次最新帖子,并丢掉已经见过的。
-
设置计划。 一个每 5 分钟运行一次的 Schedule Trigger。
-
获取最新帖子。 对
/search-tweets发 POST 请求,用OR把各账号的from:连起来,并把order设为latest。一次请求就能覆盖查询里的所有账号。账号有几百个时,把它们放进一个公开的 X List,再用它的list_id调用GET /list-tweets:一次请求就能读取一个最多含 5,000 个账号的 List 的信息流。 -
拆分帖子。 对
tweets用 Split Out。 -
丢掉已见过的。 一个 Remove Duplicates 节点,Operation 设为 Remove Items Processed in Previous Executions,Keep Items Where 设为 Value Is New。把帖子的
id字段拖进 Value to Dedupe On。帖子 ID 是唯一的,所以只有新帖子能通过。 -
发送消息。 接上 Slack 节点,或者 Google Sheets 或电子邮件,并使用工作流构建出的
text字段。
上面的节点生成器能写出这整个工作流。选择 New posts alert,输入要监测的账号,复制 JSON,粘贴到空画布里:其中包含第 1 到 4 步以及消息文本。在 HTTP Request 节点里选好你的 Header Auth 凭据,在末尾加上你的 Slack 节点,然后发布工作流。
第一次运行会放行最新的 20 条帖子,因为 Remove Duplicates 还什么都没见过;从第二次运行起,只有新帖子会到达 Slack。每次运行一次请求,每 5 分钟一次的计划在 30 天的月份里要运行 8,640 次,在 Starter 套餐的 1 万次请求之内。如果想每隔几秒轮询一次、做 List 和大规模关键词提醒,指南 Twitter 实时监测讲得更深入。
#配方:把粉丝导出到 Google Sheets
在 n8n 里导出粉丝,只需要三个节点:一个在 GET /followers 上带查询参数翻页的 HTTP Request 节点,一个针对 users 的 Split Out 节点,以及一个追加行的 Google Sheets 节点。每次请求最多返回 200 份粉丝资料,所以有 5 万个粉丝的账号需要 250 次请求,一次运行就能完成。
-
手动启动。 用 Manual Trigger,因为完整的列表是一次性任务。
-
请求粉丝。 一个 HTTP Request 节点,Method 为 GET,指向同一个基础 URL 下的
/followers,打开 Send Query Parameters,把username设为该账号。如上所述打开翻页,Type 选 Query,并把 Max Pages 提高到粉丝数除以 200。 -
拆分用户资料。 对
users用 Split Out。 -
追加到表格。 一个 Google Sheets 节点,选 Append Row,把
id、username、display_name、followers_count、location和created_at映射到各列。
当一个工作流要导出多个账号时,HTTP Request 节点会对每个传入的条目各运行一次。把它的 Batching 选项设为每批 20 个条目,Batch Interval 设为 1,000(即一秒),n8n 就能保持在每秒 20 次请求。如果突发流量仍然遇到 429,在节点设置里打开 Retry On Fail。处理超大列表、文件和 Excel 各种怪癖的完整方法,见指南导出 Twitter 粉丝。
#在 n8n 里读取 X 数据要花多少钱
在 n8n 里通过 Sorsa API 读取帖子,每 1,000 条推文 $0.07 起,而 X 节点用的官方 X API 是每 1,000 条帖子 $5.00。你按请求付费,而不是按条目:20 条帖子的一页搜索结果只算一次请求,失败的请求从不计费。
官方 X API
$5,000
读取 100 万 条帖子
每条帖子 $0.005
Sorsa API
$70 起
读取 100 万 条帖子
每 1,000 条 $0.07 起
便宜 71 倍
粉丝的差距最大:Sorsa API 每 1,000 个 $0.007 起,官方 X API 是 $10.00,因为 Sorsa API 每次请求返回 200 个,而 X 对每一个都要计费。
| 在 n8n 中读取的数据 | Sorsa API,每 1,000 条 | 官方 X API,每 1,000 条 |
|---|---|---|
| 来自搜索、时间线、提及、List 的帖子 | $0.07 起 | $5.00 |
| 带作者的帖子,2026 年 11 月 22 日起 | $0.07 起 | $15.00 |
| 粉丝 | $0.007 起 | $10.00 |
| 每批 100 个查询的用户资料 | $0.014 起 | $10.00 |
来自搜索、时间线、提及、List 的帖子
- Sorsa API,每 1,000 条
- $0.07 起
- 官方 X API,每 1,000 条
- $5.00
带作者的帖子,2026 年 11 月 22 日起
- Sorsa API,每 1,000 条
- $0.07 起
- 官方 X API,每 1,000 条
- $15.00
粉丝
- Sorsa API,每 1,000 条
- $0.007 起
- 官方 X API,每 1,000 条
- $10.00
每批 100 个查询的用户资料
- Sorsa API,每 1,000 条
- $0.014 起
- 官方 X API,每 1,000 条
- $10.00
把 X 数据源接入 n8n 之前,价格只是要检查的五件事之一,Sorsa API 每一件都能用数字回答:
- 配置: Header Auth 凭据里一个请求头,而不是开发者应用、OAuth2 和回调 URL。
- 速度: 所有套餐(包括免费账号)统一每秒 20 次请求。
- 覆盖范围: 搜索可回溯到 2006 年,另有时间线、提及、粉丝和 List,而 X 节点的搜索只有 7 天。
- 账号安全: Sorsa API 从不要求你的 X 登录信息或 Cookie,所以你的任何 X 账号都没有风险。
- 可靠性: 自 2022 年起投入生产,累计处理请求超 60 亿次;X 有任何变动,都由 Sorsa API 负责修复,你的工作流用的字段不会变。
#给 n8n 的 AI Agent 接入实时 X 数据
把 Sorsa API 作为工具挂到 n8n 的 AI Agent 上,它就能自己搜索 X。把一个 HTTP Request 节点作为工具挂到智能体上,指向 POST /search-tweets,使用你的 Header Auth 凭据,并在 query 请求体的值里填一个调用 $fromAI('query', 'An X search query with operators', 'string') 的表达式。这样模型会自己写出搜索,由 n8n 发出。
在工具的 Optimize Response 选项下,只保留 full_text、user.username、created_at 和 likes_count,这样模型读到的是帖子而不是整份用户资料,消耗的 token 也更少。n8n 的 $fromAI() 指南(在新标签页打开)介绍了各个参数。对 n8n 之外的智能体,比如 Claude 或 Cursor,见 面向 AI 智能体的 Twitter API。
#在 n8n 里搭建第一个 X 工作流
在 n8n 里读取 X 数据,说到底就是一个带密钥请求头的 HTTP Request 节点、正确的接口,以及一个一直翻到为空的游标。基于 Sorsa API 来搭建:用一个 ApiKey 请求头取代 OAuth 应用,每次请求 20 条帖子或 200 个粉丝,每 1,000 条推文 $0.07 起,另有 100 次免费请求,足够读取你的前 2,000 条帖子。
同样的节点模式在代码里也适用;指南 Python 调用 Twitter API 用 requests 演示了这一点。
#常见问题
n8n 有新推文的触发器吗?
没有。n8n 没有在有人发帖时触发的触发器节点,Sorsa API 也没有 webhook,所以只能靠轮询发现新帖子。让工作流从每隔几分钟运行一次的 Schedule Trigger 开始,请求最新的帖子,再让它们经过以帖子 ID 为键的 Remove Duplicates 节点,这样每条帖子只触发一次。
在 n8n 里该用哪个 Twitter API?
在 n8n 里读取 X 数据,用 Sorsa API。它在标准的 HTTP Request 节点里,用一个 ApiKey 请求头就能工作,不需要 OAuth 应用,每次请求返回 20 条帖子或 200 个粉丝,每 1,000 条推文 $0.07 起,而官方 X API 是每 1,000 条帖子 $5.00,所有套餐统一每秒 20 次请求。X 节点只留着用来发帖。
不用开发者账号,能在 n8n 里读取 Twitter 吗?
可以。Sorsa API 只需要它自己的 API 密钥:它通过一个 REST API 把 X 公开数据以干净的 JSON 返回,从不要求你的 X 登录信息。社区的爬虫节点依赖已登录的 X 会话或 Cookie,会让那个 X 账号面临被锁定的风险。Sorsa API 只返回公开数据,你如何使用这些数据,仍须自行遵守法律和 X 的规则。
n8n 能通过 Sorsa API 发推文吗?
不能。Sorsa API 从设计上就是只读的:它从不发帖、点赞、关注或发送消息,所以不会伤害任何 X 账号。发帖请继续用 n8n 里带 OAuth2 应用的 X 节点,读取则在 HTTP Request 节点里通过 Sorsa API 完成。这两个节点可以并排放在同一个工作流里。
100 次免费请求在 n8n 里能读取多少条推文?
通过搜索、时间线或提及,每次请求 20 条,约 2,000 条帖子;或者每次请求 200 个,读取 2 万个粉丝。每个新的 Sorsa API 账号都送 100 次免费请求,无需信用卡,永不过期,所以在选定套餐之前,你的第一个工作流就能完整跑通。
#我们如何核实
2026 年 11 月 2 日,我们在 n8n 的文档和 GitHub 上的节点源码里查阅了 X 节点的操作,并在 n8n 的文档和源码里查阅了 HTTP Request 节点的翻页、批处理和 Header Auth 选项。同一天,我们在 docs.x.com 上核对了 X 的价格,并把每个 Sorsa API 接口、字段和每页条数与线上 API 参考逐一对照。这次我们没有 API 密钥,所以请求、响应和工作流都依据这些参考编写,而没有实际运行。