Как использовать полученный токен
После того как getTaskResult вернул status: "ready" и решение в solution, токен нужно доставить на сайт. Ниже способы доставки разделены по типу капчи.
reCAPTCHA v2 / v3#
Для reCAPTCHA v2 и v3 используются:
| Способ | Что используется |
|---|---|
| Скрытое поле формы | g-recaptcha-response |
| JS-объект/callback | grecaptcha.getResponse() заменяется значением токена; либо вызывается callback, заданный в data-callback |
Способ 1 — через скрытое поле формы#
Большинство сайтов кладут токен в скрытый <input> внутри формы и просто отправляют форму. Найдите соответствующее поле в DOM и подставьте значение перед сабмитом:
<textarea id="g-recaptcha-response" name="g-recaptcha-response"></textarea>
document.querySelector('#g-recaptcha-response').value = 'ТОКЕН_ИЗ_SOLUTION';
document.querySelector('form').submit();
Способ 2 — через callback-функцию#
Если виджет инициализирован с data-callback (или JS-параметром callback в grecaptcha.render()), сайт ожидает не сабмит формы, а вызов этой функции с токеном в качестве аргумента. Имя функции у каждого сайта своё — его нужно смотреть в разметке (data-callback="onCaptchaSolved") или в JS-инициализации виджета:
// reCAPTCHA v2/v3 с callback
onCaptchaSolved('ТОКЕН_ИЗ_SOLUTION');
Перед тем как выбирать способ, откройте вкладку Network в инструментах разработчика браузера и пройдите капчу вручную — это покажет, отправляется ли токен как поле формы (POST с g-recaptcha-response в теле) или передаётся в JS-callback без явной отправки формы.
Cloudflare Turnstile#
Для Turnstile используются:
| Способ | Что используется |
|---|---|
| Скрытое поле формы | cf-turnstile-response |
| JS-объект/callback | callback, заданный в data-callback виджета Turnstile или в параметре callback объекта turnstile.render() |
Способ 1 — через скрытое поле формы#
Большинство сайтов кладут токен в скрытый <input> внутри формы и просто отправляют форму. Найдите соответствующее поле в DOM и подставьте значение перед сабмитом:
<input type="hidden" name="cf-turnstile-response" id="cf-turnstile-response">
document.querySelector('#cf-turnstile-response').value = 'ТОКЕН_ИЗ_SOLUTION';
document.querySelector('form').submit();
Способ 2 — через callback-функцию#
Если виджет инициализирован с data-callback (или JS-параметром callback в turnstile.render()), сайт ожидает не сабмит формы, а вызов этой функции с токеном в качестве аргумента. Имя функции у каждого сайта своё — его нужно смотреть в разметке (data-callback="onTurnstileSolved") или в JS-инициализации виджета:
// Turnstile с callback
onTurnstileSolved('ТОКЕН_ИЗ_SOLUTION');
Перед тем как выбирать способ, откройте вкладку Network в инструментах разработчика браузера и пройдите капчу вручную — это покажет, отправляется ли токен как поле формы (POST с cf-turnstile-response в теле) или передаётся в JS-callback без явной отправки формы.