跳到正文

在 n8n 中使用 Twitter API,无需 OAuth

要在 n8n 里读取 X(Twitter)数据,用 HTTP Request 节点带上密钥请求头调用 X 数据 API:内置的 X 节点是为发帖设计的,它唯一的搜索只覆盖最近 7 天,每条帖子 $0.005。

  • 更新于
  • 发布于
  • 阅读约 11 分钟

简短回答: 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 日的通知(在新标签页打开))。

X 节点 n8n 内置 OAuth2 开发者应用 Client ID、密钥、回调 官方 X API 预付额度 向 X 写入 发帖、回复、点赞、转发、私信 搜索:最近 7 天 无时间线,无粉丝 每条推文 $0.005 每读一条推文都计费 HTTP Request 节点 n8n 内置 ApiKey 请求头 一个 Header Auth 凭证 Sorsa API 每秒 20 次请求 读取 X 数据 时间线、提及、列表 搜索可追溯到 2006 年 粉丝,每次请求 200 个 $0.07 起 每 1,000 条推文
X 节点留着用来发帖。读取 X 数据,用带一个请求头的 HTTP Request 节点。

#用 Sorsa API 在 n8n 里读取 X 数据

Sorsa API 是一款 Twitter(X)API 与爬虫,只需一个请求头就能接入 n8n 的 HTTP Request 节点,所以读取 X 数据只要一个凭据和一个节点。要在 n8n 里读取推文、提及和粉丝,用 Sorsa API:每次请求 20 条推文或 200 个粉丝,搜索可回溯到 2006 年,所有套餐统一每秒 20 次请求,不需要开发者账号,也不需要 OAuth 应用。

下面的步骤搭出一个关键词搜索。其他所有任务都用同一个凭据和同一个节点,只是换一个接口。

  1. 获取 API 密钥。 注册后,从控制台复制密钥。前 100 次请求免费,无需绑卡,永不过期。

  2. 创建 Header Auth 凭据。 在 n8n 里打开 Credentials,新建一个 Header Auth 凭据,把 Name 设为 ApiKey,Value 设为你的密钥。这样,你导出或分享的每个工作流里都不会带上密钥。

  3. 添加 HTTP Request 节点。 把 Method 设为 POST,URL 设为 https://api.sorsa.io/v3/search-tweets。在 Authentication 下选 Generic Credential Type,再选 Header Auth,然后选第 2 步创建的凭据。

  4. 以 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"}'
    
  5. 把帖子拆成条目。 添加一个 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 里。

HTTP Request 节点:选项,分页
分页模式
在每次请求中更新一个参数
类型
Body
名称
next_cursor
值
{{ $response.body.next_cursor }}
分页完成条件
其他
完成表达式
{{ !$response.body.next_cursor }}
限制获取页数
开启,最大页数 50
请求间隔
50,即二十分之一秒

/search-tweets、/user-tweets 和 /mentions 这类 POST 接口,要把游标放在 JSON body 里。

最大页数决定了一次运行最多花多少:搜索 50 页大约 1,000 条推文。

第 1 页 发送 无游标 得到 20 条推文 next_cursor: "DAAD...A1" 第 2 页 回传 "DAAD...A1" 得到 20 条推文 next_cursor: "DAAD...B7" 第 3 到 49 页 每页发送 上一页给的游标 得到下一批 20 条推文 和新游标 最后一页 得到最后几条推文 next_cursor: null 循环停止 Complete Expression,每页之后检查 {{ !$response.body.next_cursor }} 每次请求的 next_cursor 值 {{ $response.body.next_cursor }}
每个响应都把下一次请求要用的游标交给节点。游标为空,循环就结束。

须知

不要改动 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 份用户资料

对 /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 条帖子
工作流 JSON:HTTP Request + Split Out
{
  "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 没有新帖子的触发器,所以工作流每隔几分钟请求一次最新帖子,并丢掉已经见过的。

  1. 设置计划。 一个每 5 分钟运行一次的 Schedule Trigger。

  2. 获取最新帖子。 对 /search-tweets 发 POST 请求,用 OR 把各账号的 from: 连起来,并把 order 设为 latest。一次请求就能覆盖查询里的所有账号。账号有几百个时,把它们放进一个公开的 X List,再用它的 list_id 调用 GET /list-tweets:一次请求就能读取一个最多含 5,000 个账号的 List 的信息流。

  3. 拆分帖子。 对 tweets 用 Split Out。

  4. 丢掉已见过的。 一个 Remove Duplicates 节点,Operation 设为 Remove Items Processed in Previous Executions,Keep Items Where 设为 Value Is New。把帖子的 id 字段拖进 Value to Dedupe On。帖子 ID 是唯一的,所以只有新帖子能通过。

  5. 发送消息。 接上 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 次请求,一次运行就能完成。

  1. 手动启动。 用 Manual Trigger,因为完整的列表是一次性任务。

  2. 请求粉丝。 一个 HTTP Request 节点,Method 为 GET,指向同一个基础 URL 下的 /followers,打开 Send Query Parameters,把 username 设为该账号。如上所述打开翻页,Type 选 Query,并把 Max Pages 提高到粉丝数除以 200。

  3. 拆分用户资料。 对 users 用 Split Out。

  4. 追加到表格。 一个 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 密钥,所以请求、响应和工作流都依据这些参考编写,而没有实际运行。

Sorsa API 团队撰写。 我们开发和运营 Sorsa API,这是只读的 Twitter/X API 与爬虫,2022 年起运行于生产环境(前身为 TweetScout API),累计处理请求超 60 亿次。 关于 Sorsa API

更新内容
  • 全文重写:核实 n8n 节点选项和 X 价格,用 next_cursor 翻页,n8n 节点生成器,可导入的工作流,以及粉丝和 AI Agent 配方。2026-06-17: 首次发布。