Microsoft Power Automate (trước đây là Flow) tự động hóa các quy trình kinh doanh trên toàn hệ sinh thái Microsoft và hàng trăm dịch vụ của bên thứ ba. Khi những quy trình công việc đó gặp phải các biểu mẫu hoặc API web được bảo vệ bằng CAPTCHA,CaptchaAIcó thể giải quyết chúng thông qua trình kết nối HTTP của Power Automate.
Hướng dẫn này cho biết cách xây dựng quy trình Power Automate gửi CAPTCHA tới CaptchaAI, thăm dò kết quả và sử dụng mã thông báo đã giải quyết để hoàn tất việc gửi biểu mẫu.
Kịch bản thế giới thực
Nhóm tài chính của bạn cần tự động truy xuất dữ liệu từ cổng nhà cung cấp hiển thị reCAPTCHA v2. Thay vì can thiệp thủ công, quy trình Power Automate:
- Nhận các tham số CAPTCHA (khóa trang web, URL trang)
- Gửi chúng tới CaptchaAI
- Chờ giải pháp
- Sử dụng mã thông báo để xác thực và truy xuất dữ liệu
Bước 1: Tạo luồng
Trong Power Automate, tạo Luồng đám mây tức thì bằng Trình kích hoạt thủ công (hoặc bất kỳ trình kích hoạt nào bạn chọn).
Thêm tham số đầu vào vào trình kích hoạt
Thêm hai kiểu nhập văn bản vào trình kích hoạt thủ công:
- sitekey – Khóa trang web reCAPTCHA v2
- pageurl — URL của trang có CAPTCHA
Bước 2: Gửi tác vụ CAPTCHA
Thêm hành động HTTP (Trình kết nối cao cấp):
| Cài đặt | Giá trị |
|---|---|
| phương pháp | NHẬN |
| URI | https://ocr.captchaai.com/in.php |
Truy vấn:
| Chìa khóa | Giá trị |
|---|---|
| chìa khóa | Khóa API CaptchaAI của bạn |
| phương pháp | userrecaptcha |
| khóa google | @{triggerBody()['text']} (đầu vào khóa trang web) |
| địa chỉ trang | @{triggerBody()['text_1']} (đầu vào url trang) |
| json | 1 |
Phân tích phản hồi: Thêm hành động Phân tích JSON sau hành động HTTP:
Lược đồ:
{
"type": "object",
"properties": {
"status": { "type": "integer" },
"request": { "type": "string" }
}
}
Nội dung: @{body('HTTP')}
Bước 3: Xác thực Gửi phản hồi
Thêm hành động Điều kiện:
- Điều kiện:
@{body('Parse_JSON')?['status']}bằng1
Nếu Không (gửi không thành công):
- Thêm hành động Chấm dứt với trạng thái "Không thành công" và thông báo:
Submit error: @{body('Parse_JSON')?['request']}
Nếu Có:
- Tiếp tục vòng bỏ phiếu
Bước 4: Xây dựng vòng bỏ phiếu
Bên trong nhánh "If Yes", thêm vòng lặp Do Until:
Điều kiện vòng lặp: @{variables('solveStatus')} không bằng pending
Trước vòng lặp, khởi tạo hai biến:
- solveStatus (Chuỗi) =
pending - solvedToken (Chuỗi) = trống
Bên trong vòng lặp Do Until, hãy thêm các hành động sau theo trình tự:
4a. Trì hoãn
Thêm hành động Trì hoãn: 5 giây.
4b. HTTP – Thăm dò kết quả
| Cài đặt | Giá trị |
|---|---|
| phương pháp | NHẬN |
| URI | https://ocr.captchaai.com/res.php |
Truy vấn:
| Chìa khóa | Giá trị |
|---|---|
| chìa khóa | Khóa API CaptchaAI của bạn |
| hành động | get |
| mã số | @{body('Parse_JSON')?['request']} |
| json | 1 |
4c. Phân tích cú pháp JSON – Phản hồi thăm dò ý kiến
Sử dụng lược đồ tương tự như Bước 2.
4d. Điều kiện – Kiểm tra trạng thái
Điều kiện: @{body('Parse_JSON_2')?['status']} bằng 1
Nếu Có (đã giải quyết):
- Đặt biến
solvedToken=@{body('Parse_JSON_2')?['request']} - Đặt biến
solveStatus=solved
Nếu không:
- Thêm điều kiện khác:
@{body('Parse_JSON_2')?['request']}không bằngCAPCHA_NOT_READY - Nếu đúng (lỗi), đặt
solveStatus=error - Nếu sai (vẫn đang chờ xử lý), không làm gì cả (vòng lặp tiếp tục)
Đặt giới hạn vòng lặp Thực hiện cho đến:
- Số lượng: 20 (số lần lặp tối đa)
- Thời gian chờ: PT3M (3 phút)
Bước 5: Sử dụng Token đã giải quyết
Sau vòng lặp, thêm Điều kiện để kiểm tra @{variables('solveStatus')}:
Nếu bằng "đã giải quyết":
- Sử dụng
@{variables('solvedToken')}trong HTTP POST để gửi biểu mẫu - Hoặc gửi qua email, tin nhắn trong Teams hoặc bất kỳ trình kết nối nào khác
Ví dụ HTTP POST để gửi biểu mẫu:
| Cài đặt | Giá trị |
|---|---|
| phương pháp | BÀI ĐĂNG |
| URI | URL biểu mẫu mục tiêu |
| Thân hình | {"g-recaptcha-response": "@{variables('solvedToken')}", "other_field": "value"} |
Nếu không được "giải quyết":
- Gửi thông báo lỗi qua Teams hoặc email
Cấu trúc dòng chảy hoàn chỉnh
[Manual Trigger (sitekey, pageurl)]
↓
[Initialize Variables: solveStatus, solvedToken]
↓
[HTTP: Submit to CaptchaAI /in.php]
↓
[Parse JSON]
↓
[Condition: status = 1?]
↓ Yes
[Do Until: solveStatus ≠ pending]
├── [Delay: 5 seconds]
├── [HTTP: Poll CaptchaAI /res.php]
├── [Parse JSON]
└── [Condition: Solved or Error?]
↓
[Condition: solveStatus = solved?]
↓ Yes
[HTTP: Submit form with token]
↓
[Compose: Success response]
Khắc phục sự cố
| Vấn đề | Nguyên nhân | Cách xử lý |
|---|---|---|
| Trình kết nối HTTP không khả dụng | Gói miễn phí không bao gồm đầu nối cao cấp | Nâng cấp lên Power Automate Premium hoặc sử dụng trình kết nối tùy chỉnh |
| Phân tích JSON không thành công | Nội dung phản hồi là văn bản, không phải JSON | Đảm bảo json=1 có trong tham số truy vấn |
| Vòng lặp chạy vô thời hạn | Biến solveStatus không được cập nhật |
Kiểm tra tên biến khớp chính xác trong Đặt hành động biến |
| Lỗi 403 từ CaptchaAI | Hạn chế IP hoặc khóa API sai | Xác minh khóa API; kiểm tra xem danh sách trắng IP có được bật trên tài khoản của bạn không |
| Hết thời gian chờ luồng | Thời gian chờ mặc định là 30 ngày là ổn nhưng thời gian chờ của từng hành động riêng lẻ là 2 phút | Thời gian chờ Do Until (PT3M) xử lý việc này; tăng nếu cần |
Câu hỏi thường gặp
Điều này có yêu cầu giấy phép Premium Power Automate không?
Có, trình kết nối HTTP là một tính năng Cao cấp. Nếu bạn đang sử dụng gói miễn phí, hãy cân nhắc sử dụng trình kết nối tùy chỉnh hoặc định tuyến thông qua Azure Functions.
Tôi có thể giải các loại CAPTCHA khác không?
Vâng. Thay đổi tham số method thành turnstile cho Cloudflare Turnstile hoặc post cho CAPTCHA hình ảnh. Điều chỉnh các thông số cần thiết cho phù hợp.
Làm cách nào để lưu trữ khóa API một cách an toàn?
Sử dụng trình kết nối Biến môi trường hoặc Azure Key Vault của Power Automate để tránh mã hóa cứng khóa API trong định nghĩa luồng.
Tôi có thể kích hoạt luồng này từ Power Apps không?
Vâng. Sử dụng trình kết nối Power Automate trong Power Apps để gọi dòng này, chuyển khóa trang và pageurl làm tham số rồi nhận lại mã thông báo.
bài viết liên quan
- Cách giải quyết cuộc gọi lại Recaptcha V2 bằng Api
- Xử lý cửa quay Recaptcha V2 trên cùng một trang web
- Cơ chế gọi lại Recaptcha V2
Các bước tiếp theo
Thêm giải pháp CAPTCHA vào quy trình làm việc Power Automate của bạn –lấy khóa API CaptchaAI của bạnvà xây dựng dòng chảy.
Hướng dẫn liên quan:
- Zapier + CaptchaAI: Giải CAPTCHA không cần mã
- Tạo (Integromat) + CaptchaAI
- Retool + CaptchaAI: Xử lý CAPTCHA của công cụ nội bộ