Логотип «GitHub»

reCAPTCHA V3 / reCAPTCHA V3 Enterprise

reCAPTCHA V3 widget

Основанный на токенах метод автоматического решения reCAPTCHA V3.

Полученный токен может быть отправлен на целевой веб-сайт внутри поля формы g-recaptcha-response или передан функции обратного вызова.

Типы задачи: RecaptchaV3TaskProxyless

Спецификация для типа задачи RecaptchaV3TaskProxyless

Свойство Тип Обязателен Описание
type Строка Да Тип задачи:
RecaptchaV3TaskProxyless
websiteURL Строка Да Полный URL-адрес целевой веб-страницы, на которую загружается капча. Мы не открываем страницу, это не проблема, если страница доступна только для авторизованных пользователей
websiteKey Строка Да reCAPTCHA sitekey. Свойство data-sitekey для reCAPTCHA, которое можно найти внутри элемента div или внутри параметра k запросов к reCAPTHCHA API. Вы также можете использовать script, чтобы найти значение sitekey.
minScore Число Да Обязательное значение score, примеры значений:
0.3
0.7
0.9
pageAction Строка Нет Значение параметра action. Значение устанавливается владельцем веб-сайта внутри свойства data-action элемента reCAPTCHA div или передается внутри объекта options при вызове метода execute, например grecaptcha.execute('websiteKey'{ action: 'MyAction' })
isEnterprise Логический Нет Передайте значение true для Enterprise версии reCAPTCHA. Вы можете идентифицировать Enterprise версию по наличию скрипта enterprise.js, используемого вместо api.js или с помощью вызова grecaptcha.enterprise.execute, используемого вместо grecaptcha.execute.
apiDomain Строка Нет Домен, с которого загружается reCAPTCHA: recaptcha.net или google.com. По умолчанию используется google.com.

Пример запроса

Метод: createTask
Эндпоинт API: https://api.2captcha.com/createTask

{
    "clientKey":"YOUR_API_KEY",
    "task": {
        "type": "RecaptchaV3TaskProxyless",
        "websiteURL": "https://2captcha.com/demo/recaptcha-v3",
        "websiteKey": "6LfB5_IbAAAAAMCtsjEHEHKqcB9iQocwwxTiihJu",
        "minScore": 0.9,
        "pageAction": "test",
        "isEnterprise": false,
        "apiDomain": "www.recaptcha.net"
    },
    "softId": "3898",
    "callbackUrl": "https://1.2.3.4/webhooks/captcha"
}

Пример ответа

Метод: getTaskResult
Эндпоинт API: https://api.2captcha.com/getTaskResult

{
    "errorId": 0,
    "status": "ready",
    "solution": {
        "gRecaptchaResponse": "03ADUVZwB7eLoqnBxvi5H...kA4Si3qH0rR0g",
        "token": "03ADUVZwB7eLoqnBxvi5H...kA4Si3qH0rR0g"
    },
    "cost": "0.00299",
    "ip": "1.2.3.4",
    "createTime": 1692863536,
    "endTime": 1692863556,
    "solveCount": 1
}

Примеры кода

// https://github.com/2captcha/2captcha-php

require(__DIR__ . '/../src/autoloader.php');

$solver = new \TwoCaptcha\TwoCaptcha('YOUR_API_KEY');

try {
    $result = $solver->recaptcha([
        'sitekey' => '6LfB5_IbAAAAAMCtsjEHEHKqcB9iQocwwxTiihJu',
        'url'     => 'https://2captcha.com/demo/recaptcha-v3',
        'version' => 'v3',
        'action'  => 'test',
    ]);
} catch (\Exception $e) {
    die($e->getMessage());
}

die('Captcha solved: ' . $result->code);
# https://github.com/2captcha/2captcha-python

import sys
import os

sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))

from twocaptcha import TwoCaptcha

api_key = os.getenv('APIKEY_2CAPTCHA', 'YOUR_API_KEY')

solver = TwoCaptcha(api_key)

try:
    result = solver.recaptcha(
        sitekey='6LfB5_IbAAAAAMCtsjEHEHKqcB9iQocwwxTiihJu',
        url='https://2captcha.com/demo/recaptcha-v3',
        version='v3',
        action='test')

except Exception as e:
    sys.exit(e)

else:
    sys.exit('solved: ' + str(result))
// https://github.com/2captcha/2captcha-csharp

using System;
using System.Linq;
using TwoCaptcha.Captcha;

namespace TwoCaptcha.Examples
{
    public class reCAPTCHAV3Example
    {
        public void Main()
        {
            TwoCaptcha solver = new TwoCaptcha("YOUR_API_KEY");
            ReCaptcha captcha = new ReCaptcha();
            captcha.SetSiteKey("6LfB5_IbAAAAAMCtsjEHEHKqcB9iQocwwxTiihJu");
            captcha.SetUrl("https://2captcha.com/demo/recaptcha-v3");
            captcha.SetVersion("v3");
            captcha.SetAction("test");
            try
            {
                solver.Solve(captcha).Wait();
                Console.WriteLine("Captcha solved: " + captcha.Code);
            }
            catch (AggregateException e)
            {
                Console.WriteLine("Error occurred: " + e.InnerExceptions.First().Message);
            }
        }
    }
}
// https://github.com/2captcha/2captcha-java

package examples;

import com.twocaptcha.TwoCaptcha;
import com.twocaptcha.captcha.reCAPTCHA;

public class reCAPTCHAV3Example {
    public static void main(String[] args) {
        TwoCaptcha solver = new TwoCaptcha("YOUR_API_KEY");
        ReCaptcha captcha = new ReCaptcha();
        captcha.setSiteKey("6LfB5_IbAAAAAMCtsjEHEHKqcB9iQocwwxTiihJu");
        captcha.setUrl("https://2captcha.com/demo/recaptcha-v3");
        captcha.setVersion("v3");
        captcha.setAction("test");
        try {
            solver.solve(captcha);
            System.out.println("Captcha solved: " + captcha.getCode());
        } catch (Exception e) {
            System.out.println("Error occurred: " + e.getMessage());
        }
    }

}
// https://github.com/2captcha/2captcha-go

package main

import (
    "fmt"
    "log"
    "github.com/2captcha/2captcha-go"
)

func main() {
    client := api2captcha.NewClient("API_KEY")
    captcha := api2captcha.ReCaptcha{
        SiteKey: "6LfB5_IbAAAAAMCtsjEHEHKqcB9iQocwwxTiihJu",
        Url: "https://2captcha.com/demo/recaptcha-v3",
        Version: "v3",
        Action: "verify"
    } 
    code, err := client.Solve(captcha.ToRequest())
    if err != nil {
        log.Fatal(err);
    }
    fmt.Println("code "+code)
}
# https://github.com/2captcha/2captcha-ruby

require 'api_2captcha'

client =  Api2Captcha.new("YOUR_API_KEY")

result = client.recaptcha_v3({
  googlekey: '6LfB5_IbAAAAAMCtsjEHEHKqcB9iQocwwxTiihJu',
  pageurl: 'https://2captcha.com/demo/recaptcha-v3',
  version: 'v3',
  score: 0.9
})

Полезные ссылки