Решение стандартной reCAPTCHA v3 через API

Автор: solvethree2 мин на чтение

Для стандартной reCAPTCHA v3 задайте recaptchaType значение v3 в теле задачи. Для reCAPTCHA Enterprise v3 используйте enterprise-v3; это значение также применяется по умолчанию, если поле не указано.

На этой странице

Подготовьте профиль, имя хоста, действие и прокси

Для стандартной v3 также требуется активный профиль сайта, доступный вашему рабочему пространству. Настройте целевой сайт в консоли перед созданием задачи; передача имени хоста и действия не создаёт профиль.

  • site: целевое имя хоста, например accounts.example.com, а не полный URL страницы.
  • action: действие, используемое интеграцией reCAPTCHA целевого приложения. Замените login из примера, если целевое приложение использует другое значение. См. как найти действие.
  • proxy или proxyCandidates: укажите ровно одно из этих полей. В примере используется один прокси. Если вместо него вы используете список кандидатов, он принимает не более двенадцати различных URL HTTP- или HTTPS-прокси без пути, строки запроса и фрагмента.

Отправьте задачу стандартной v3

Отправьте это JSON-тело в POST https://api.solvethree.com/v1/tasks. Для аутентификации передайте API-ключ рабочего пространства в заголовке Authorization по схеме Bearer. Храните ключ на своём сервере.

Стандартная v3 · тело задачи
{
  "site": "accounts.example.com",
  "action": "login",
  "recaptchaType": "v3",
  "proxy": "http://user:[email protected]:8080",
  "requestId": "v3-login-001"
}

Поле recaptchaType должно находиться на верхнем уровне рядом с site, action и proxy. Не добавляйте поля type и url для reCAPTCHA.

Замените имя хоста, действие и прокси из примера значениями целевого приложения. Используйте новый requestId для каждого нового логического решения. Если создание завершилось тайм-аутом, повторно отправьте то же тело задачи с тем же ID, чтобы восстановить существующую задачу, а не создать ещё одну. Повторное использование этого ID с другими входными данными вызывает конфликт.

Дождитесь готовности и отправьте токен

  1. 1.

    Сначала проверьте HTTP-ответ

    Обработайте неуспешный HTTP-ответ, прежде чем читать его тело как результат задачи. Проверьте статус и устраните указанную ошибку запроса.

  2. 2.

    Получайте задачу до её завершения

    По умолчанию создание ожидает до 15 секунд; предусмотрите дополнительное время в тайм-ауте клиента на сетевые задержки. Если статус — pending или solving, получите задачу через GET /v1/tasks/:id. По умолчанию GET-опрос не ожидает обновления; для длительного опроса передайте waitMs со значением до 15000 как параметр строки запроса URL, а не поле JSON. Прекратите опрос при ready или failed. При failed проверьте errorCode и error, прежде чем решать, имеет ли смысл ещё одна попытка.

  3. 3.

    Используйте готовое решение

    Отправьте solution.token нужному целевому приложению — не ID задачи. Используйте возвращённые userAgent и secChUa вместе с прокси, через который задача была успешно решена. Не меняйте IP-адрес и не подставляйте посторонние идентификационные данные браузера между решением и отправкой.

Готовый токен не подтверждает конкретную оценку reCAPTCHA или принятие целевым приложением. reCAPTCHA v3 формирует оценку риска и действие, которые целевое приложение проверяет на своём сервере; проверьте его ответ на запрос, передающий токен.

Запустите первую задачу.

Начните с $5 на балансе рабочего пространства.

Создать рабочее пространство
Решение стандартной reCAPTCHA v3 через API · solvethree