Integrations

Make (Integromat) + CaptchaAI:无代码验证码自动化

Make(原 Integromat)没有原生的验证码模块,所以自动化场景一旦走到带 reCAPTCHA v2 的页面——填表、下单、查询数据——就会卡在那一步。解决办法很直接:加一个 HTTP 模块,把验证码交给 CaptchaAI 识别,拿到 token 再继续往下跑,全程不写一行后端代码。

下面从空白场景搭出「提交 → 轮询 → 取回 token → 使用」的完整链路。做出海、跨境电商的团队用 Make 填海外门户或 SaaS 表单时经常撞上 reCAPTCHA v2,这套流水线正为这类场景准备。

前置准备

动手前先备齐:

  • 一个 CaptchaAI 账号和 API Key,账户里要有余额(最低 BASIC 套餐 $15/月起)
  • 一个 Make 账号,免费版即可跑通本文流程(有 5 分钟执行上限,见文末常见问题)
  • 目标页面的 reCAPTCHA sitekey(源码里的 data-sitekey)和 pageurl
  • 一个接收请求的自定义 Webhook(第 1 步创建)

整体流程

场景要做的事:

  1. 用 Webhook 触发器接收请求,带上目标页面的 pageurl 和 reCAPTCHA sitekey
  2. 通过 HTTP 模块把验证码提交给 CaptchaAI 识别
  3. 轮询接口,直到识别结果就绪
  4. 把取回的 token 通过 Webhook 回传,或送进下一个模块

第 1 步:搭建场景

新建一个空白场景,按顺序依次添加以下模块。

模块 1:Webhook 触发器(自定义 Webhook)

先加一个自定义 Webhook 接收待识别的请求,约定 sitekeypageurlcaptcha_type 三个字段,数据结构如下:

{
  "sitekey": "6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-",
  "pageurl": "https://example.com/form",
  "captcha_type": "recaptcha_v2"
}
  1. 添加 Webhooks > Custom webhook 模块
  2. 点击 Add 新建 Webhook,复制生成的 Webhook URL
  3. sitekeypageurlcaptcha_type 定义数据结构
  4. 保持模块监听状态,供后续触发

模块 2:HTTP 请求 — 向 CaptchaAI 提交任务

再加一个 HTTP > Make a request 模块,用 GET 请求提交接口 https://ocr.captchaai.com/in.php,并打开 Parse response(JSON)。查询字符串填入以下参数,提交成功后接口返回任务 ID(request 字段):

  • key:你的 CaptchaAI API Key
  • methoduserrecaptcha
  • googlekey{{1.sitekey}}(从 Webhook 映射)
  • pageurl{{1.pageurl}}(从 Webhook 映射)
  • json1
{
  "status": 1,
  "request": "TASK_ID_12345"
}

模块 3:Sleep 模块

Tools > Sleep 模块,设为 15 秒,给识别留出时间,避免一提交就轮询、白花操作数。

模块 4:HTTP 请求 — 轮询结果

再加一个 HTTP > Make a request 模块,这次用 GET 请求结果接口 https://ocr.captchaai.com/res.php,查询字符串如下:

  • key:你的 CaptchaAI API Key
  • actionget
  • id{{2.data.request}}(模块 2 返回的任务 ID)
  • json1

模块 5:Router — 判断结果

在轮询模块后接一个 Router,根据返回内容分出两条路由:

  • 识别成功(status = 1):过滤条件设为 {{4.data.status}} 等于 1,继续执行后续动作(Webhook 响应、写库等)

  • 结果未就绪(CAPCHA_NOT_READY):过滤条件设为 {{4.data.request}} 等于 CAPCHA_NOT_READY,连回模块 3 形成轮询循环

第 2 步:处理轮询循环

Make 里做循环有两种方式:把模块连回前一阶段,或用 Repeater 模块控制最大轮询次数。推荐后者,逻辑更清晰:

  1. 添加 Flow Control > Repeater 模块,设为 10 次迭代(最大轮询次数)
  2. 在 Repeater 内部放入 Sleep → 轮询 → Router 这一段
  3. status = 1 时,Router 跳出循环
  • 重复次数:10
  • 初始值:{{2.data.request}}(任务 ID)
  • 每次迭代休眠 5 秒后轮询一次,检查结果是否就绪

第 3 步:使用识别出的 token

验证码识别完成后,token 就在 {{4.data.request}} 里。下面三种用法按需选用。

方式 A:通过 Webhook 响应回传

如果场景由别的系统调用,加一个 Webhooks > Webhook response 模块把 token 原样返回:

{
  "token": "{{4.data.request}}",
  "status": "solved"
}

方式 B:回填到你自有的表单

要直接提交表单,加一个 HTTP > Make a request 模块,向你自有表单的提交地址发 POST 请求,请求体带上识别结果:

  • URL:你自有表单的提交地址
  • 方法:POST
  • Body:表单字段,其中 g-recaptcha-response 设为 {{4.data.request}}

方式 C:写入数据库留痕

想留痕便于追踪,加 Google SheetsAirtableDatabase 模块,把任务 ID、token 和时间写进去。

错误处理

给两个 HTTP 模块挂上错误处理器:右键模块 → Add error handler → 选 Resume(跳过继续)或 Rollback(中止)。常见故障分三类:

  1. 提交失败ERROR_ZERO_BALANCE 去充值,ERROR_WRONG_USER_KEY 修正 API Key
  2. 轮询失败ERROR_CAPTCHA_UNSOLVABLE 核对 sitekey 与 pageurl,网络错误则重试
  3. 超时:Repeater 迭代耗尽仍无结果,路由到记录失败的处理器

故障排除

跑不通时对照下表排查:

问题 原因 处理方式
Webhook 不触发 URL 未注册 确认 Webhook URL 在 Make 中处于活动状态
ERROR_WRONG_USER_KEY API Key 格式不对 检查 API Key 是否为 32 个字符、无多余空格
轮询循环一直不结束 Sleep 太短或任务 ID 传错 核对任务 ID 映射,把 Sleep 加到 10 秒
场景超时 Make 的执行时长上限(免费版为 5 分钟) 升级套餐或缩短轮询间隔
JSON 解析报错 响应没按 JSON 解析 在 HTTP 模块开启 Parse response,请求里设 json=1

完整场景流程

[Webhook Trigger]
      ↓
[HTTP: Submit to CaptchaAI in.php]
      ↓
[Sleep: 15 seconds]
      ↓
[Repeater: 10 iterations]
    ↓ (each iteration)
    [Sleep: 5 seconds]
    [HTTP: Poll CaptchaAI res.php]
    [Router]
      Route 1 (solved) → [Use Token] → [Webhook Response]
      Route 2 (not ready) → continue loop
      Route 3 (error) → [Error Handler]

出海团队落地与合规边界

国内站点多用极验(GeeTest)、网易易盾、腾讯防水墙,海外门户与跨境 SaaS 则常见 reCAPTCHA v2 和 Cloudflare Turnstile。出海场景往往两类都要处理,统一交给 CaptchaAI 能省去多套适配。

  • reCAPTCHA 依赖 Google 脚本,境内访问不稳定,建议把场景部署在能稳定访问目标站点的服务器上
  • 单场景串行、跑量不大时 BASIC 的 5 条线程够用,并发上量再往上选
  • 把任务 ID 与识别结果写入日志,方便按天核对成功率和操作数

合规提示:仅对你自有或已获授权的表单与站点运行自动化;采集第三方数据前,请确认符合对方 robots 协议与《个人信息保护法》(PIPL)等要求。

常见问题

reCAPTCHA v2 识别一般要等多久?轮询该怎么设?

大多数 reCAPTCHA v2 任务在十几秒到半分钟内出结果。稳妥的节奏是:

  • 首次轮询前先 Sleep 15 秒
  • 之后每 5 秒轮询一次,最多 10 次
  • 间隔太短白花操作数,太长又拉高场景耗时

在 Make 里也能识别 Cloudflare Turnstile 吗?

可以。把 method 改成 turnstile,提交请求里用 sitekey 代替 googlekey 即可,其余轮询与取 token 的流程完全一样。

CaptchaAI 怎么收费?会按识别次数计价吗?

不按次数计价,而是按并发线程收费——一条线程同时处理一个验证码,识别完立刻接下一个,套餐内次数不限。

  • 最低的 BASIC 套餐 $15/月,含 5 条线程
  • Make 单场景串行跑,5 条线程通常够用
  • 并发量大时再往上选更高线程的套餐

免费版 Make 的 5 分钟执行上限会导致超时吗?

有可能。轮询次数多、间隔又长时,单次执行就可能撞上 5 分钟上限。应对办法是缩短轮询间隔、减少迭代次数,或升级到时长更宽松的付费套餐。

相关阅读

下一步

在 Make 里把验证码识别自动化跑起来——领取你的 CaptchaAI API Key,动手搭第一个场景。想接其他平台或深入回调机制,可继续看:

该文章已禁用评论。