Microsoft Power Automate (ранее Flow) автоматизирует бизнес-процессы в экосистеме Microsoft и сотнях сторонних сервисов. Когда эти рабочие процессы сталкиваются с веб-формами или API, защищенными CAPTCHA,CaptchaAIмогут решить их через HTTP-коннектор Power Automate.
В этом руководстве показано, как создать поток Power Automate, который отправляет CAPTCHA в CaptchaAI, опрашивает результаты и использует решенный токен для завершения отправки форм.
Реальный сценарий
Вашему финансовому отделу необходимо автоматизировать получение данных с портала поставщиков, на котором отображается reCAPTCHA v2. Вместо ручного вмешательства поток Power Automate:
- Получает параметры CAPTCHA (ключ сайта, URL страницы)
- Отправляет их на CaptchaAI.
- Ждет решения
- Использует токен для аутентификации и получения данных.
Шаг 1. Создайте поток
В Power Automate создайте Мгновенный облачный поток с помощью Ручного триггера (или любого триггера по вашему выбору).
Добавьте входные параметры в триггер
Добавьте два текстовых поля к ручному триггеру:
- sitekey — ключ сайта reCAPTCHA v2.
- pageurl — URL-адрес страницы с CAPTCHA.
Шаг 2. Отправьте задачу CAPTCHA
Добавьте действие HTTP (коннектор Premium):
| Параметр | Ценить |
|---|---|
| Метод | ПОЛУЧАТЬ |
| URI | https://ocr.captchaai.com/in.php |
Запросы:
| Ключ | Ценить |
|---|---|
| ключ | Ваш API-ключ CaptchaAI |
| метод | userrecaptcha |
| ГуглКей | @{triggerBody()['text']} (ввод ключа сайта) |
| пейджерл | @{triggerBody()['text_1']} (ввод страницы) |
| JSON | 1 |
Проанализируйте ответ. Добавьте действие Разобрать JSON после действия HTTP:
Схема:
{
"type": "object",
"properties": {
"status": { "type": "integer" },
"request": { "type": "string" }
}
}
Содержимое: @{body('HTTP')}
Шаг 3. Подтвердите отправку ответа
Добавьте действие Условие:
- Условие:
@{body('Parse_JSON')?['status']}равен1.
Если нет (отправка не удалась):
- Добавьте действие Завершить со статусом «Не удалось» и сообщением:
Submit error: @{body('Parse_JSON')?['request']}.
Если да:
- Продолжить цикл опроса
Шаг 4. Создайте цикл опроса
Внутри ветки «Если да» добавьте цикл Do Until:
Условие цикла: @{variables('solveStatus')} не равен pending.
Перед циклом инициализируйте две переменные:
- solveStatus (строка) =
pending - solvedToken (строка) = пусто
Внутри цикла Do Until последовательно добавьте следующие действия:
4а. Задерживать
Добавьте действие Задержка: 5 секунд.
4б. HTTP — опрос на результат
| Параметр | Ценить |
|---|---|
| Метод | ПОЛУЧАТЬ |
| URI | https://ocr.captchaai.com/res.php |
Запросы:
| Ключ | Ценить |
|---|---|
| ключ | Ваш API-ключ CaptchaAI |
| действие | get |
| идентификатор | @{body('Parse_JSON')?['request']} |
| JSON | 1 |
4в. Анализ JSON — ответ на опрос
Используйте ту же схему, что и в шаге 2.
4д. Состояние — проверьте статус
Условие: @{body('Parse_JSON_2')?['status']} равен 1.
Если да (решено):
- Установить переменную
solvedToken=@{body('Parse_JSON_2')?['request']} - Установить переменную
solveStatus=solved
Если нет:
- Добавьте еще одно условие:
@{body('Parse_JSON_2')?['request']}не равенCAPCHA_NOT_READY. - Если true (ошибка), установите
solveStatus=error. - Если ложно (все еще ожидается), ничего не делать (цикл продолжается)
Установите ограничение цикла Do Until:
- Количество: 20 (максимальное количество итераций)
- Тайм-аут: PT3M (3 минуты)
Шаг 5: Используйте решенный токен
После цикла добавьте Условие для проверки @{variables('solveStatus')}:
Если равно «решено»:
- Используйте
@{variables('solvedToken')}в HTTP POST для отправки формы. - Или отправьте его по электронной почте, в сообщении Teams или через любой другой соединитель.
Пример HTTP POST для отправки формы:
| Параметр | Ценить |
|---|---|
| Метод | ПОЧТА |
| URI | URL-адрес целевой формы |
| Тело | {"g-recaptcha-response": "@{variables('solvedToken')}", "other_field": "value"} |
Если не «решено»:
- Отправьте уведомление об ошибке через Teams или по электронной почте.
Полная структура потока
[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]
Поиск неисправностей
| Проблема | Причина | Исправить |
Следующие шаги
- CaptchaAI Quickstart: ваше первое решение CAPTCHA за 5 минут
- Как решить reCAPTCHA v2 через API: пошаговое руководство
- Как решить Cloudflare Turnstile через API
- Как решить GeeTest v3 с помощью API