Skip to content

Latest commit

 

History

History
executable file
·
121 lines (99 loc) · 4.16 KB

File metadata and controls

executable file
·
121 lines (99 loc) · 4.16 KB

DecaptchaBundle

Symfony Decaptcha bundle.

Пакет создан для стандартизации всех сервисов по разгадыванию капч. У каждого сервиса есть свои особенности и теперь вам не нужно оперировать несколькими пакетами. Достаточно лишь ознакомится с имеющейся документацией для того чтобы настроить каждый. Пакет покрывает всю функциональность сервисов. Если вам будет недостаточно имеющейся функциональности, буду рад выслушать все предложения. Бандл реализован на основе https://github.com/jumper423/decaptcha

Выбор языка

Меню

Сервисы

Распознование капч по всех популярных сервисах

Установка

Скачивание бандла

Предпочтительный способ установить это расширение через composer.

Либо запустить

composer require omasn/decaptcha-bundle "*"

или добавить

"omasn/decaptcha-bundle": "1.1.*"

в файл composer.json.

Включение бандла

// in app/AppKernel.php
public function registerBundles() {
	$bundles = [
		...
		new Omasn\DecaptchaBundle\DecaptchaBundle(),
	];
	...
}

Конфигурация бандла

Настройте api_key у тех сервисов по распознаванию капч, которые вы хотите использовать.

# app/config/config.yml
omasn_decaptcha:
    ru_captcha:
        api_key: '%api_key%'
    anticaptcha:
        api_key: '%api_key%'
    captcha_24:
        api_key: '%api_key%'
    pixodrom:
        api_key: '%api_key%'
    ripcaptcha:
        api_key: '%api_key%'
    socialink:
        api_key: '%api_key%'
    two_captcha:
        api_key: '%api_key%'

Использование

Небольшой пример того как на основе сервиса RuCaptcha получить ваш текущий баланс в системе и по имеющемуся url распознать капчу. Подробную информацию о использовании можно найти в Документации

Пример в экшене контролллера

// src/AppBundle/Controller/DefaultController.php
...
public function indexAction()
{
    $oReCapcha = $this->get('decaptcha.ru_captcha');
    $iBalance = $oReCapcha->getBalance();
    ...
    if ($oReCapcha->recognize('http://site.ru/captcha.jpg')) {
        $code = $oReCapcha->getCode();
        if (!$myApp->validCode($code)) {
            $oReCapcha->notTrue(); // not valid code request in api
        }
    } else {
        $error = $oReCapcha->getError();
    }
}
...

Применение дополнительной конфигурации

Добавим в конфиг RuCaptcha дополнительные параметры "Описание полей"

// src/AppBundle/Controller/DefaultController.php

use Omasn\DecaptchaBundle\Services\RuCaptcha;

...
public function indexAction()
{
    $oReCapcha = $this->get('decaptcha.ru_captcha');
    $oReCapcha->setParams([
        RuCaptcha::ACTION_FIELD_FILE => '/file/to/path',
    ]);
}
...