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 步创建)
整体流程
场景要做的事:
- 用 Webhook 触发器接收请求,带上目标页面的 pageurl 和 reCAPTCHA sitekey
- 通过 HTTP 模块把验证码提交给 CaptchaAI 识别
- 轮询接口,直到识别结果就绪
- 把取回的 token 通过 Webhook 回传,或送进下一个模块
第 1 步:搭建场景
新建一个空白场景,按顺序依次添加以下模块。
模块 1:Webhook 触发器(自定义 Webhook)
先加一个自定义 Webhook 接收待识别的请求,约定 sitekey、pageurl、captcha_type 三个字段,数据结构如下:
{
"sitekey": "6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-",
"pageurl": "https://example.com/form",
"captcha_type": "recaptcha_v2"
}
- 添加 Webhooks > Custom webhook 模块
- 点击 Add 新建 Webhook,复制生成的 Webhook URL
- 用
sitekey、pageurl、captcha_type定义数据结构 - 保持模块监听状态,供后续触发
模块 2:HTTP 请求 — 向 CaptchaAI 提交任务
再加一个 HTTP > Make a request 模块,用 GET 请求提交接口 https://ocr.captchaai.com/in.php,并打开 Parse response(JSON)。查询字符串填入以下参数,提交成功后接口返回任务 ID(request 字段):
key:你的 CaptchaAI API Keymethod:userrecaptchagooglekey:{{1.sitekey}}(从 Webhook 映射)pageurl:{{1.pageurl}}(从 Webhook 映射)json:1
{
"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 Keyaction:getid:{{2.data.request}}(模块 2 返回的任务 ID)json:1
模块 5:Router — 判断结果
在轮询模块后接一个 Router,根据返回内容分出两条路由:
-
识别成功(status = 1):过滤条件设为
{{4.data.status}}等于1,继续执行后续动作(Webhook 响应、写库等) -
结果未就绪(CAPCHA_NOT_READY):过滤条件设为
{{4.data.request}}等于CAPCHA_NOT_READY,连回模块 3 形成轮询循环
第 2 步:处理轮询循环
Make 里做循环有两种方式:把模块连回前一阶段,或用 Repeater 模块控制最大轮询次数。推荐后者,逻辑更清晰:
- 添加 Flow Control > Repeater 模块,设为 10 次迭代(最大轮询次数)
- 在 Repeater 内部放入 Sleep → 轮询 → Router 这一段
- 当
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 Sheets、Airtable 或 Database 模块,把任务 ID、token 和时间写进去。
错误处理
给两个 HTTP 模块挂上错误处理器:右键模块 → Add error handler → 选 Resume(跳过继续)或 Rollback(中止)。常见故障分三类:
- 提交失败:
ERROR_ZERO_BALANCE去充值,ERROR_WRONG_USER_KEY修正 API Key - 轮询失败:
ERROR_CAPTCHA_UNSOLVABLE核对 sitekey 与 pageurl,网络错误则重试 - 超时: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 分钟上限。应对办法是缩短轮询间隔、减少迭代次数,或升级到时长更宽松的付费套餐。
相关阅读
- reCAPTCHA v2 回调式识别怎么做
- 同站点同时处理 reCAPTCHA v2 与 Turnstile
- reCAPTCHA v2 回调机制详解
下一步
在 Make 里把验证码识别自动化跑起来——领取你的 CaptchaAI API Key,动手搭第一个场景。想接其他平台或深入回调机制,可继续看: