Интеграции

Power Automate + CaptchaAI: решение CAPTCHA Microsoft Flow

Microsoft Power Automate (ранее Flow) автоматизирует бизнес-процессы в экосистеме Microsoft и сотнях сторонних сервисов. Когда эти рабочие процессы сталкиваются с веб-формами или API, защищенными CAPTCHA,CaptchaAIмогут решить их через HTTP-коннектор Power Automate.

В этом руководстве показано, как создать поток Power Automate, который отправляет CAPTCHA в CaptchaAI, опрашивает результаты и использует решенный токен для завершения отправки форм.

Реальный сценарий

Вашему финансовому отделу необходимо автоматизировать получение данных с портала поставщиков, на котором отображается reCAPTCHA v2. Вместо ручного вмешательства поток Power Automate:

  1. Получает параметры CAPTCHA (ключ сайта, URL страницы)
  2. Отправляет их на CaptchaAI.
  3. Ждет решения
  4. Использует токен для аутентификации и получения данных.

Шаг 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
Комментарии для этой статьи отключены.