n8n là một công cụ tự động hóa quy trình làm việc nguồn mở có hỗ trợ vòng lặp gốc, giúp công cụ này linh hoạt hơn Zapier trong việc giải CAPTCHA. Bạn có thể xây dựng quy trình gửi → thăm dò → sử dụng quy trình tự động thử lại cho đến khi quá trình giải quyết hoàn tất.
Tổng quan về quy trình làm việc
Manual Trigger / Cron
↓
HTTP Request: Submit CAPTCHA
↓
Wait: 10 seconds
↓
Loop: Poll until solved
├── HTTP Request: Get result
├── IF: status == 1? → Exit loop
└── Wait: 5 seconds → Loop again
↓
HTTP Request: Use token
Nút 1: Gửi CAPTCHA
Thêm nút Yêu cầu HTTP:
| Cài đặt | Giá trị |
|---|---|
| phương pháp | POST |
| URL | https://ocr.captchaai.com/in.php |
| Loại nội dung cơ thể | Form URL Encoded |
Thông số cơ thể:
| Tên | Giá trị |
|---|---|
key |
{{ $credentials.captchaaiApiKey }} hoặc mã hóa khóa của bạn |
method |
userrecaptcha |
googlekey |
6Le-SITEKEY |
pageurl |
https://example.com |
json |
1 |
Phản hồi:
{
"status": 1,
"request": "71823456"
}
Nút 2: Đợi
Thêm nút Chờ:
| Cài đặt | Giá trị |
|---|---|
| Thời gian chờ | 10 |
| Đơn vị | Seconds |
Điều này giúp người giải có thời gian bắt đầu xử lý trước cuộc thăm dò đầu tiên.
Nút 3: Kết quả thăm dò (có vòng lặp)
n8n hỗ trợ các vòng lặp thông qua nút Loop Over Items hoặc bằng cách kết nối đầu ra sai của nút IF trở lại nút trước đó.
Tùy chọn A: Vòng lặp IF đơn giản
Thêm nút Yêu cầu HTTP (Thăm dò ý kiến):
| Cài đặt | Giá trị |
|---|---|
| phương pháp | GET |
| URL | https://ocr.captchaai.com/res.php |
| Tham số truy vấn | key, action=get, id={{ $json.request }}, json=1 |
Kết nối nó với nút IF:
| tình trạng | Giá trị |
|---|---|
| Giá trị 1 | {{ $json.status }} |
| hoạt động | Equal |
| Giá trị 2 | 1 |
- Đầu ra đúng → Tiếp tục hành động tiếp theo (sử dụng mã thông báo)
- Đầu ra sai → Đợi (5 giây) → quay lại nút Thăm dò ý kiến
Tùy chọn B: Nút mã
Để kiểm soát nhiều hơn, hãy sử dụng nút Code:
const apiKey = 'YOUR_API_KEY';
const taskId = $input.first().json.request;
for (let i = 0; i < 24; i++) {
await new Promise(r => setTimeout(r, 5000));
const resp = await fetch(
`https://ocr.captchaai.com/res.php?key=${apiKey}&action=get&id=${taskId}&json=1`
);
const data = await resp.json();
if (data.status === 1) {
return [{ json: { token: data.request, taskId } }];
}
if (data.request !== 'CAPCHA_NOT_READY') {
throw new Error(`CaptchaAI error: ${data.request}`);
}
}
throw new Error(`Task ${taskId} timed out`);
Nút 4: Sử dụng mã thông báo
Thêm một nút Yêu cầu HTTP khác để gửi biểu mẫu với mã thông báo đã được giải quyết:
| Cài đặt | Giá trị |
|---|---|
| phương pháp | POST |
| URL | `https://staging.example.com/qa-form |
| Loại nội dung cơ thể | Form URL Encoded |
Các tham số nội dung bao gồm dữ liệu biểu mẫu của bạn cộng thêm:
| Tên | Giá trị |
|---|---|
g-recaptcha-response |
{{ $json.token }} |
Lưu trữ khóa API một cách an toàn
Sử dụng hệ thống Thông tin xác thực của n8n:
- Đi tới Thông tin xác thực → Thêm thông tin xác thực → Xác thực tiêu đề
- Tên:
CaptchaAI API Key - Lưu trữ chìa khóa một cách an toàn
Hoặc sử dụng biến môi trường:
# In your n8n environment
export CAPTCHAAI_API_KEY="your_key_here"
Tham chiếu trong các nút: {{ $env.CAPTCHAAI_API_KEY }}
Quy trình làm việc của CAPTCHA hình ảnh
Đối với CAPTCHA hình ảnh, hãy điều chỉnh nút Gửi:
| Tên | Giá trị |
|---|---|
method |
base64 |
body |
Hình ảnh được mã hóa Base64 (từ nút hoặc URL trước đó) |
Để chuyển đổi URL hình ảnh thành base64 trong n8n, hãy thêm nút Code trước khi gửi:
const imageUrl = $input.first().json.imageUrl;
const resp = await fetch(imageUrl);
const buffer = Buffer.from(await resp.arrayBuffer());
const base64 = buffer.toString('base64');
return [{ json: { imageBase64: base64 } }];
Quy trình kiểm tra số dư
Tạo một quy trình công việc riêng biệt chạy theo lịch trình:
Cron (daily at 9 AM)
↓
HTTP Request: GET res.php?action=getbalance
↓
IF: balance < 5
↓
Slack / Email: "CaptchaAI balance low: $X.XX"
n8n vs Zapier để giải CAPTCHA
| tính năng | n8n | Zapier |
|---|---|---|
| Hỗ trợ Loop/retry | Gốc (vòng lặp IF, nút vòng lặp) | Bị giới hạn (Chỉ đường dẫn) |
| Tùy chọn tự lưu trữ | Có (miễn phí) | Không (chỉ đám mây) |
| Nút mã | JavaScript đầy đủ | bị giới hạn |
| Chi phí | Đám mây miễn phí (tự lưu trữ) hoặc trả phí | Được trả tiền (mỗi nhiệm vụ) |
| Dễ dàng thiết lập | Trung bình | Dễ dàng |
n8n tốt hơn cho quy trình làm việc của CAPTCHA vì hỗ trợ vòng lặp và các nút Mã.
Khắc phục sự cố
| Vấn đề | Nguyên nhân | Cách xử lý |
|---|---|---|
| Vòng thăm dò chạy mãi mãi | Không có giới hạn lặp lại tối đa | Thêm một biến đếm, ngắt sau 24 lần lặp |
CAPCHA_NOT_READY không ngừng nghỉ |
Thời gian chờ đợi quá ngắn trước cuộc thăm dò đầu tiên | Tăng thời gian chờ ban đầu lên 15-20 giây |
| Mã thông báo không có sẵn trong nút tiếp theo | Đường dẫn biểu thức sai | Kiểm tra {{ $json.token }} khớp với đầu ra |
| Không tìm thấy thông tin xác thực | Biến môi trường chưa được đặt | Khởi động lại n8n sau khi cài đặt env vars |
Câu hỏi thường gặp
Tôi có thể xử lý nhiều CAPTCHA trong một quy trình làm việc không?
Vâng. Sử dụng nút Chia theo lô để xử lý nhiều mục, mỗi mục có quy trình gửi → thăm dò → sử dụng riêng.
N8n có hỗ trợ Turnstile không?
Vâng. Thay đổi method thành turnstile và sử dụng sitekey thay vì googlekey.
Tích hợp giải pháp CAPTCHA vào quy trình công việc n8n của bạn
Nhận khóa API của bạn tạicaptchaai.com.