Параметр action представляет собой строковую метку, которая сообщает Google, что делает пользователь: login, checkout, homepage, submit_form. Он необходим для решения reCAPTCHA v3 и влияет на возвращаемый балл.
Если вы передадите неправильное действие, полученный токен может быть действительным, но серверная часть сайта отклонит его, поскольку действие в токене не соответствует ожидаемому действию. Правильное определение этого параметра имеет решающее значение для успешного решения reCAPTCHA v3.
Что делает параметр действия
Когда сайт вызывает grecaptcha.execute(), он передает строку действия:
grecaptcha.execute('SITEKEY', { action: 'submit_form' });
Это действие встроено в токен. Когда сайт проверяет токен в Google, ответ включает в себя:
{
"success": true,
"score": 0.9,
"action": "submit_form",
"challenge_ts": "2024-01-15T12:00:00Z",
"hostname": "example.com"
}
Серверная часть проверяет, что response.action === 'submit_form'. Если вместо этого вы решили капчу с помощью action: 'homepage', токен действителен, но несовпадение действий приведет к отклонению.
Как найти правильное значение действия
Способ 1. Инструменты разработчика браузера — вкладка «Сеть».
- Откройте DevTools — вкладка Сеть.
- Фильтровать по
recaptchaилиanchor - Запуск отправки формы или взаимодействия со страницей
- Найдите вызовы
grecaptcha.executeв столбце «Инициатор». - Значение действия отображается в параметрах вызова
Способ 2: поиск источника страницы
// In the browser console:
document.querySelectorAll('script').forEach(s => {
if (s.textContent.includes('action')) {
const match = s.textContent.match(/action['":\s]+['"](\w+)['"]/);
if (match) console.log('Found action:', match[1]);
}
});
Способ 3. Поиск файлов JavaScript
- Откройте DevTools — вкладка Источники.
- Нажмите
Ctrl + Shift + Fдля поиска по всем файлам. - Найдите
grecaptcha.executeилиaction:. - Значение действия — это строка, передаваемая в объекте параметров.
Общие ценности действий
| Действие | Типичное использование |
|---|---|
homepage |
Посещение целевой страницы |
login |
Форма входа |
submit |
Отправка общей формы |
register |
Регистрация аккаунта |
checkout |
Страница оплаты |
contact |
Контактная форма |
search |
Поисковые запросы |
Использование параметра действия с CaptchaAI
Питон
import requests
import time
response = requests.get("https://ocr.captchaai.com/in.php", params={
"key": "YOUR_API_KEY",
"method": "userrecaptcha",
"version": "v3",
"googlekey": "6LfZil0UAAAAADM1Dpz...",
"action": "login", # Must match the site's action
"pageurl": "https://https://staging.example.com/qa-login",
"json": 1
})
task_id = response.json()["request"]
for _ in range(30):
time.sleep(5)
result = requests.get("https://ocr.captchaai.com/res.php", params={
"key": "YOUR_API_KEY", "action": "get", "id": task_id, "json": 1
}).json()
if result.get("status") == 1:
token = result["request"]
break
Node.js
const axios = require('axios');
async function solveRecaptchaV3(sitekey, pageurl, action) {
const submit = await axios.get('https://ocr.captchaai.com/in.php', {
params: {
key: 'YOUR_API_KEY',
method: 'userrecaptcha',
version: 'v3',
googlekey: sitekey,
action: action,
pageurl: pageurl,
json: 1
}
});
const taskId = submit.data.request;
for (let i = 0; i < 30; i++) {
await new Promise(r => setTimeout(r, 5000));
const result = await axios.get('https://ocr.captchaai.com/res.php', {
params: { key: 'YOUR_API_KEY', action: 'get', id: taskId, json: 1 }
});
if (result.data.status === 1) return result.data.request;
}
throw new Error('Timeout waiting for solution');
}
solveRecaptchaV3('6LfZil0UAAAAADM1Dpz...', 'https://https://staging.example.com/qa-login', 'login')
.then(token => console.log('Token:', token));
Что произойдет, если вы используете неправильное действие
| Сценарий | Результат |
|---|---|
| Правильное действие | Токен принят, запрос успешен |
| Неправильное действие | Токен действителен, но серверная часть отклоняется из-за несоответствия действий |
| Пустое действие | Некоторые сайты принимают это; другие отвергают |
| Действие не найдено | Используйте homepage по умолчанию — некоторые сайты не проверяют действие. |
Часто задаваемые вопросы
Требуется ли параметр действия для reCAPTCHA v3?
Да. Каждый вызов grecaptcha.execute() включает в себя действие. Если вы опустите его в запросе CaptchaAI, решатель будет использовать значение по умолчанию, которое может не соответствовать ожиданиям сайта.
Могу ли я использовать любое значение действия?
Технически, но серверная часть сайта сравнивает действие в токене с ожидаемым значением. Использование неправильного действия, скорее всего, вызовет отказ даже при высоком балле.
Влияет ли действие на счет?
Косвенно. Google может назначать разные модели риска для каждого действия. Действие login может иметь более строгую оценку, чем действие homepage, но оценка в первую очередь основана на поведенческих сигналах.
Как найти действие для одностраничных приложений?
SPA часто вызывают grecaptcha.execute динамически. Установите точку останова на grecaptcha.execute в DevTools или отслеживайте запросы XHR, чтобы определить, когда и с каким действием выполняется вызов.
Связанные руководства
- Как решить reCAPTCHA v3 автоматически с помощью API
- Почему reCAPTCHA v3 возвращает низкий балл
- Как получить высокий балл на reCAPTCHA v3
- Объяснение reCAPTCHA v2 против v3