Туториалы по API

Объяснение параметра действия reCAPTCHA v3

Параметр 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. Инструменты разработчика браузера — вкладка «Сеть».

  1. Откройте DevTools — вкладка Сеть.
  2. Фильтровать по recaptcha или anchor
  3. Запуск отправки формы или взаимодействия со страницей
  4. Найдите вызовы grecaptcha.execute в столбце «Инициатор».
  5. Значение действия отображается в параметрах вызова

Способ 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

  1. Откройте DevTools — вкладка Источники.
  2. Нажмите Ctrl + Shift + F для поиска по всем файлам.
  3. Найдите grecaptcha.execute или action:.
  4. Значение действия — это строка, передаваемая в объекте параметров.

Общие ценности действий

Действие Типичное использование
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, чтобы определить, когда и с каким действием выполняется вызов.


Связанные руководства

Комментарии для этой статьи отключены.