Code Monkey home page Code Monkey logo

rucaptcha-client's Introduction

rucaptcha-client

Удобная PHP-обёртка для сервиса распознавания капчи rucaptcha.com.
Оригинальная документация доступна по ссылке.

Build Status Code Coverage Scrutinizer Code Quality

Install

$ composer require --prefer-dist gladyshev/rucaptcha-client "*"

or

"require": {
  ...
  "gladyshev/rucaptcha-client": "*"
  ...
}

Examples

Больше примеров в папке examples.

/* Simple */

$rucaptcha = new Rucaptcha\Client(
    Rucaptcha\Config::fromApiKey(getenv('__RUCAPTCHA_KEY__')),
    new GuzzleHttp\Client() // Any PSR-18 HTTP-client
);

$captchaText = $rucaptcha->recognizeFile('captcha.png');
print_r($captchaText); // h54g6
/* Advanced example */

$rucaptcha = new \Rucaptcha\Client(
    \Rucaptcha\Config::fromApiKey('YOUR_API_KEY'),
    new \GuzzleHttp\Client(['base_uri' => 'https://2captcha.com']),
    new \Monolog\Logger('2Captcha', [new \Monolog\Handler\StreamHandler('php://stdout')])
);

$taskIds = [];

$taskIds[] = $rucaptcha->sendCaptcha(file_get_contents('captcha1.png'));
$taskIds[] = $rucaptcha->sendCaptcha(file_get_contents('captcha2.jpg'));
$taskIds[] = $rucaptcha->sendCaptcha(file_get_contents('captcha3.gif'), [
    Rucaptcha\Extra::NUMERIC => 1
]);

$results = [];

while (count($taskIds) > 0) 
{
    // Try get results
    foreach ($taskIds as $i=>$taskId) 
    {    
        // Wait 5 sec
        sleep(5);
        
        $results[$taskId] = $rucaptcha->getCaptchaResult($taskId);
        
        // false === is not ready, on error we've got an exception
        if ($results[$taskId] === false) {
            continue;
        } else {
            unset($taskIds[$i]);
        }
    }
}

print_r($results);

Methods of Rucaptcha\Client

use Rucaptcha\Client;

/* Solving captcha methods */

Client::recognize(string $content, array $extra = []): string;
Client::recognizeFile(string $path, array $extra = []): string;
Client::sendCaptcha(string $content, array $extra = []): int;
Client::getCaptchaResult(int $captchaId): string;
Client::getCaptchaResultBulk(array $captchaIds): array;

/* Pingback stuff */

Client::addPingback(string $uri): void;
Client::getPingbacks(): array;
Client::deletePingback(string $uri): void;
Client::deleteAllPingbacks(): void;

/* Google Recaptcha V2 */

Client::sendRecapthaV2($googleKey, $pageUrl, $extra = []): int
Client::recognizeRecapthaV2($googleKey, $pageUrl, $extra = []): string

/* Other */

Client::getLastCaptchaId(): string;
Client::getBalance(): string;
Client::reportGood(string $captchaId): bool;
Client::reportBad(string $captchaId): bool;

Client options

Параметр Тип По умолчанию Возможные значения
verbose bool false Включает/отключает логирование в стандартный вывод
apiKey string '' Ключ API с которым вызывается сервис
rTimeout integer 5 Период между опросами серевера при получении результата распознавания
mTimeout integer 120 Таймаут ожидания ответа при получении результата распознавания
serverBaseUri string 'http://rucaptcha.com' Базовый URI сервиса

Solving options $extra

Параметр Тип По умолчанию Возможные значения
phrase integer 0 0 = одно слово
1 = капча имеет два слова
regsense integer 0 0 = регистр ответа не имеет значения
1 = регистр ответа имеет значение
question integer 0 0 = параметр не задействован
1 = на изображении задан вопрос, работник должен написать ответ
numeric integer 0 0 = параметр не задействован
1 = капча состоит только из цифр
2 = Капча состоит только из букв
3 = Капча состоит либо только из цифр, либо только из букв.
calc integer 0 0 = параметр не задействован
1 = работнику нужно совершить математическое действие с капчи
min_len 0..20 0 0 = параметр не задействован
1..20 = минимальное количество знаков в ответе
max_len 1..20 0 0 = параметр не задействован
1..20 = максимальное количество знаков в ответе
is_russian integer 0 параметр больше не используется, т.к. он означал "слать данную капчу русским исполнителям", а в системе находятся только русскоязычные исполнители. Смотрите новый параметр language, однозначно обозначающий язык капчи
soft_id string ID разработчика приложения. Разработчику приложения отчисляется 10% от всех капч, пришедших из его приложения.
language integer 0 0 = параметр не задействован
1 = на капче только кириллические буквы
2 = на капче только латинские буквы
lang string Код языка. См. список поддерживаемых языков.
header_acao integer 0 0 = значение по умолчанию
1 = in.php передаст Access-Control-Allow-Origin: * параметр в заголовке ответа. (Необходимо для кросс-доменных AJAX запросов в браузерных приложениях. Работает также для res.php.)
textinstructions string Текст, который будет показан работнику. Может содержать в себе инструкции по разгадке капчи. Ограничение - 140 символов. Текст необходимо слать в кодировке UTF-8.
textcaptcha string Текстовая капча. Картинка при этом не загружается, работник получает только текст и вводит ответ на этот текст. Ограничение - 140 символов. Текст необходимо слать в кодировке UTF-8.
pingback string URL для автоматической отправки ответа на капчу (callback). URL должен быть зарегистрирован на сервере. Больше информации здесь.
recaptcha string Используется при работе со старым алгоритмом распознования Google Recaptcha V2. Больше информации здесь.
proxy string Формат: логин:пароль@123.123.123.123:3128 Больше информации о прокси здесь.
proxytype string Тип вашего прокси-сервера: HTTP, HTTPS, SOCKS4, SOCKS5.

rucaptcha-client's People

Contributors

adideas avatar gladyshev avatar parpalak avatar scrutinizer-auto-fixer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

rucaptcha-client's Issues

Fatal error: Uncaught exception

привет.
пробую ваш пример .../generic_client.php
ключ для антикапчи беру с сайта https://anti-captcha.com/clients/settings/apisetup

возвращается ошибка
Fatal error: Uncaught exception 'Rucaptcha\Exception\ErrorResponseException' with message 'Использован несуществующий key.' in I:\openserver525\domains\2017.scripts\19week\id421245182\rucaptcha\vendor\gladyshev\rucaptcha-client\src\GenericClient.php:179 Stack trace: #0 I:\openserver525\domains\2017.scripts\19week\id421245182\rucaptcha\vendor\gladyshev\rucaptcha-client\src\GenericClient.php(124): Rucaptcha\GenericClient->sendCaptcha('\xFF\xD8\xFF\xE0\x00\x10JFIF\x00\x01\x01\x00\x00...', Array) #1 I:\openserver525\domains\2017.scripts\19week\id421245182\rucaptcha\vendor\gladyshev\rucaptcha-client\src\GenericClient.php(113): Rucaptcha\GenericClient->recognize('\xFF\xD8\xFF\xE0\x00\x10JFIF\x00\x01\x01\x00\x00...', Array) #2 I:\openserver525\domains\2017.scripts\19week\id421245182\rucaptcha\tmp08.php(22): Rucaptcha\GenericClient->recognizeFile('captcha3950166....') #3 {main} thrown in I:\openserver525\domains\2017.scripts\19week\id421245182\rucaptcha\vendor\gladyshev\rucaptcha-client\src\GenericClient.php on line 179

что посоветуете исправить?

For Laravel 10.x dependency update

Show PR #12

  Problem 1
    - Root composer.json requires gladyshev/rucaptcha-client 2.0.0 -> satisfiable by gladyshev/rucaptcha-client[v2.0.0].
    - gladyshev/rucaptcha-client v2.0.0 requires psr/log ~1.0 -> found psr/log[1.0.0, ..., 1.1.4] but the package is fixed to 3.0.0 (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command.

Update psr/log to version 3.0.0

VK Example

Здравствуйте, никак не могу разобраться с получением капчи для VK. Можете написать не большой пример, пожалуйста?)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.