API Распознавание капч (Заказчик)

Начать работу с нашим сервисом очень просто.
У нас есть удобная библиотека и примеры (PHP, iMacros) по работе с ней, а также полное описание всех методов API.

Если вы использовали аналогичный сервис, то для переключения достаточно поменять в настройках домен на www.socialink.ru.
Мы 100% совместимы с API Antigate и иными сервисами с аналогичным API.

Если у вас останутся вопросы или возникнут предложения - напишите нам в техподдержку, мы постараемся вам помочь.

1

Алгоритм работы

Общий алгоритм работы с сервисом по распознаванию капч выглядит следующим образом:

1. передаем изображение, которое необходимо распознать, запросу присваивается уникальный ID;
2. через некоторое время (10-15 секунд) обращаемся за результатом через GET-запрос
3. если в ответ получаем CAPCHA_NOT_READY - капча еще не распознана, повторяем обращение через некоторое время (п.2)
4. если в ответ получаем OK|%CAPTCHA_KEY% - капча успешно распознана, %CAPTCHA_KEY% - результат распознавания
5. в случае неудовлетворительного результата распознавания, можно пожаловаться на результат

Кроме того, в ходе обращений к серверу могут возвращаться сообщения об ошибках (см. Возвращаемые значения). Это значит, что запрос не принят вследствии неверно переданных параметров, недостаточного баланса, загруженности исполнителей и др.

2

Примеры и библиотеки

PHP

скачать библиотеку Uncaptcha, версия 0.1.5

Пример распознавания капчи

$source = dirname(__FILE__).'/captcha.gif';
Uncaptcha::$key = $key; //ключ доступа указан в профиле пользователя
$res = Uncaptcha::recognize($source,array('debug'=>true,'timeout'=>60));
print_r($res);

Пример получения результата по нескольким CAPTCHA_ID

Uncaptcha::$key = $key; //ключ доступа указан в профиле пользователя
$res = Uncaptcha::result(array($captcha_id1,$captcha_id2));
print_r($res);

Пример отправки жалобы

Uncaptcha::$key = $key; //ключ доступа указан в профиле пользователя
$res = Uncaptcha::complain($captcha_id);
echo $res;

Пример запроса баланса

Uncaptcha::$key = $key; //ключ доступа указан в профиле пользователя
$res = Uncaptcha::balance();
echo $res;

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

Uncaptcha::$key = $key; //ключ доступа указан в профиле пользователя
$res = Uncaptcha::stats(date('Y-m-d'));
print_r($res);

iMacros

скачать пример контролируемой работы iMacros с использованием JS, версия 0.0.1

Форма для загрузки: http://socialink.ru/imacros.html

Пример распознавания капчи

TAB T=1
URL GOTO=http://socialink.ru/form.php

'удаляем файл со старой капчей, если не найден - ошибка
FILEDELETE NAME=c:\captcha.jpg
'сохраняем новую капчу на компьютер
ONDOWNLOAD FOLDER=c:\ FILE=captcha.jpg
TAG POS=1 TYPE=IMG ATTR=SRC:data* CONTENT=EVENT:SAVEITEM

'открываем форму для распознавания во второй вкладке
TAB OPEN
TAB T=2
URL GOTO=http://socialink.ru/imacros.html

'указываем ключ доступа к API, указанный в профиле пользователя и путь к капче на компьютере
TAG POS=1 TYPE=INPUT:TEXT FORM=METHOD:POST ATTR=NAME:key CONTENT="%%ACCESS_KEY%%"
TAG POS=1 TYPE=INPUT:FILE FORM=METHOD:POST ATTR=NAME:file CONTENT=c:\captcha.jpg

'отправляем форму на сервер и вытаскиваем результат
TAG POS=1 TYPE=INPUT:SUBMIT FORM=METHOD:POST ATTR=TYPE:SUBMIT
TAG POS=1 TYPE=BODY ATTR=TXT:* EXTRACT=TXT
SET CAPTCHA_KEY {{!EXTRACT}}

'закрываем вкладку
TAB CLOSE
TAB T=1

'вставляем в форму ответ
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:captcha_key CONTENT={{CAPTCHA_KEY}}
'отправляем форму на сервер и вытаскиваем результат
TAG POS=1 TYPE=INPUT:SUBMIT FORM=METHOD:POST ATTR=TYPE:SUBMIT
TAG POS=1 TYPE=BODY ATTR=TXT:* EXTRACT=TXT

3

Описание API

Постановка задания

Постановка задания возможна двумя методами: post и base64. Также возможно указать дополнительные параметры.

POST: http://www.socialink.ru/in.php

ПараметрЗначенияОписание
method(string) post, base64post — капча передается как бинарный файл (default)
base64 — капча передается в base64-кодированном виде
key(string)
обязательное
ключ доступа, указан в профиле пользователя
fileобязательное (для method=post)только для method=post
тело файла с MIME типом и именем
bodyобязательное (для method=base64)только для method=post
тело файла закодированное в base64; не забудьте дополнительно закодировать тело в UUEncode, иначе тело капчи придет битым.
phrase(int) 0,10 — капча состоит из одного слова (default)
1 — капча состоит из нескольких слов
regsense(int) 0,10 — капча регистронезависима (default)
1 — капча регистрозависима
numeric(int) 0,10 — капча состоит из любых символов (default)
1 — капча состоит только из цифр
min_len(int)0 — без ограничения (default)
N — минимальная длина капчи
max_len(int)0 — без ограничения (default)
N — максимальная длина капчи
is_russian(int) 0,10 — капча состоит из любых символов (default)
1 — капча содержит кириллицу
language(int) 0,1,20 — язык капчи неважен (default)
1 — капча содержит кириллицу
2 — капча содержит латиницу
параметр language приоритетен по отношению к is_russian
soft_id(int)ID приложения — вы получаете 10% от расхода пользователей вашего приложения на распознавание капч.
Для получения ID приложения напишите в техподдержку или на info@socialink.ru.

Возвращаемые значения

ОтветОписание
OK|%CAPTCHA_ID%задание успешно добавлено
%CAPTCHA_ID% — ID загруженой капчи
ERROR_WRONG_USER_KEYневерный формат ключа доступа
ERROR_KEY_DOES_NOT_EXISTнеправильный ключ доступа
ERROR_ZERO_BALANCEнедостаточно средств на балансе для постановки задания
ERROR_NO_SLOT_AVAILABLEнет свободных работников, повторите запрос через 5-10 секунд
ERROR_ZERO_CAPTCHA_FILESIZEневерный размер загружаемого изображения
ERROR_TOO_BIG_CAPTCHA_FILESIZEневерный размер загружаемого изображения
ERROR_IMAGE_TYPE_NOT_SUPPORTEDневерный формат загружаемого изображения, поддерживаются: gif,png,jpg
ERROR_IP_NOT_ALLOWEDотказано в доступе с текущего IP

Пример

<form method="post" action="http://www.socialink.ru/in.php" enctype="multipart/form-data">
<input type="hidden" name="method" value="post">
Ключ доступа: <input type="text" name="key" value="">
Изображение: <input type="file" name="file">
<input type="submit">
</form>

Получение результата распознавания

GET: http://www.socialink.ru/res.php?key=%KEY%&action=get&id=%CAPTCHA_ID%

ПараметрЗначенияОписание
key(string)
обязательное
ключ доступа, указан в профиле пользователя
action(string) get
обязательное
get - получить результат распознавания
id(int)
обязательное
ID капчи, полученный при постановке задания

Возвращаемые значения

ОтветОписание
OK|%CAPTCHA_KEY%капча успешно распознана
%CAPTCHA_KEY% — распознанный текст
CAPCHA_NOT_READYкапча еще не распознана
ERROR_WRONG_USER_KEYневерный формат ключа доступа
ERROR_KEY_DOES_NOT_EXISTнеправильный ключ доступа
ERROR_WRONG_ID_FORMATневерный формат ID капчи, полученный при постановке задания
ERROR_NO_SUCH_CAPCHA_IDкапча с указанным ID не существует
ERROR_CAPTCHA_UNSOLVABLEне удалось распознать капчу

Получение результата распознавания по нескольким CAPTCHA_ID

GET: http://www.socialink.ru/res.php?key=%KEY%&action=get&ids=%CAPTCHA_ID1%,%CAPTCHA_ID2%

ПараметрЗначенияОписание
key(string)
обязательное
ключ доступа, указан в профиле пользователя
action(string) get
обязательное
get - получить результат распознавания
ids(string)
обязательное
ID капч разделенных запятой

Ответ возвращается в виде строки, где значения разделены вертикальной чертой ("|"). Список возвращаемых значений соответствует значениям, возвращаемым при запросе только одного результата.

Жалоба на результат распознавания

При жалобе на результат распознавание ставится задание на повторное разгадывание капчи. В случае, если результат повторного разпознавания не совпадает с предыдущим, жалоба принимается и система возвращает стоимость неверно разгаданной капчи. Если результат повторного распознавания совпадает с предыдущим результатом, жалоба отклоняется, предыдущее распознавание не возмещается и списывается стоимость повторного распознавания.

GET: http://www.socialink.ru/res.php?key=%KEY%&action=reportbad&id=%CAPTCHA_ID%

ПараметрЗначенияОписание
key(string)
обязательное
ключ доступа, указан в профиле пользователя
action(string) reportbad
обязательное
reportbad — пожаловаться на результат распознавания
id(int)
обязательное
ID капчи, полученный при постановке задания

Возвращаемые значения

ОтветОписание
OK_REPORT_RECORDEDжалоба принята в обработку
ERROR_WRONG_USER_KEYневерный формат ключа доступа
ERROR_KEY_DOES_NOT_EXISTнеправильный ключ доступа
ERROR_WRONG_ID_FORMATневерный формат ID капчи, полученный при постановке задания
ERROR_NO_SUCH_CAPCHA_IDкапча с указанным ID не существует

Запрос баланса

GET: http://www.socialink.ru/res.php?key=%KEY%&action=getbalance

ПараметрЗначенияОписание
key(string)
обязательное
ключ доступа, указан в профиле пользователя
action(string) getbalance
обязательное
getbalance — получить текущий баланс

Возвращаемые значения

ОтветОписание
%BALANCE%значение текущего баланса
ERROR_WRONG_USER_KEYневерный формат ключа доступа
ERROR_KEY_DOES_NOT_EXISTнеправильный ключ доступа

Запрос статистики

GET: http://www.socialink.ru/res.php?key=%KEY%&action=getstats$date=%DATE%

ПараметрЗначенияОписание
key(string)
обязательное
ключ доступа, указан в профиле пользователя
action(string) getstats
обязательное
getstats — получить статистику за дату
date(string)
обязательное
дата в формате YYYY-MM-DD

Возвращаемые значения

<?xml version="1.0"?><response>
<stats dateint="1385064000" date="2013-11-22" hour="0"><volume>2</volume><money>0.24</money></stats>
<stats dateint="1385067600" date="2013-11-22" hour="1"><volume>5</volume><money>0.48</money></stats>
</response>

4

Совместимость

Мы полностью совместимы с API Antigate и AG-подобными API аналогичных систем. Для перехода на работу с нашей системой можно:
а) заменить домен на socialink.ru в скриптах/приложениях.
б) прописать в хостах IP нашего сервера для домена сервиса, использовавшегося ранее

144.76.84.53   antigate.com www.antigate.com

файл hosts находится
в windows: C:\Windows\system32\drivers\etc\hosts
в linux,unix: /etc/hosts
в osx: /private/etc/hosts