Решение Рекапчи через Datasitekey

olushka84

Новичок
Регистрация
14.01.2020
Сообщения
8
Благодарностей
0
Баллы
1
Всем привет! Прости блондинку за нубство. Но проблема такая. Хочу использовать решение Рекапчи в КМ через POST, GET запросы. Я далеко не профессионалка в этом деле. Установила КМ Lite пробную версию. Вроде бот (использую imacros) отправляет datasitekey, капмонстр вроде подхватывает datasitekey, но бот вываливается с ошибкой. Не могу понять в чем ошибка. Код из моего бота имеет следующий вид (не подумайте, там где заглавные буквы, там вставляются переменные):

var params = "key=" + КЛЮЧ ОТ СЕРВИСА АНТИКАПЧИНГА + "&method=userrecaptcha&googlekey=" +ТУТ DATASITEKEY + "&pageurl=" + ТУТ URI КРАНА + "&json=true&header_acao=1";

var XMLHttpRequest = Components.Constructor("@mozilla.org/xmlextras/xmlhttprequest;1");
var xhr = new XMLHttpRequest();
xhr.open('POST', "http://" + ТУТ ВСТАВЛЯЕТСЯ ХОСТ СЕРВИСА АНТИКАПЧИНГА + "/in.php", false);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
xhr.timeout = 60000;
//КОНСТРУКЦИЯ TRY CATCH
try {
//ОТСЫЛАЕМ ЗАПРОС
xhr.send(params);
if (xhr.status != 200) {
out = {
isSolved: false,
hasError: true,
errorText: xhr.statusText,
answer: ''
};
} else {
var res = JSON.parse(xhr.responseText);
if (res.status == 1) {
//ТУТ ВЫЗЫВАЕТСЯ ФУНКЦИЯ ПРОВЕРЯЮЩАЯ, РЕШЕНА ЛИ РЕКАПЧА.
checkSolution(res.request, anticaptchingKeys);
} else {
out = {
isSolved: false,
hasError: true,
errorText: xhr.statusText,
answer: ''
};
}
}

} catch (e) {
БОТ ВЫВАЛИВАЕТСЯ ТУТ С ОШИБКОЙ е is undefined
out = {
isSolved: false,
hasError: true,
errorText: e.name,
answer: ''
};

}

Правильно ли я отсылаю datasitekey?
 

olushka84

Новичок
Регистрация
14.01.2020
Сообщения
8
Благодарностей
0
Баллы
1
Продолжу. В общем опытным путем установила, что статус запроса (xhr.status) равен 200, по идее так и должно быть. Потом проверила, что какой ответ мне возвращается. И оказалось что xhr.responseText равен ERROR. Интересно куда копать дальше?
Код:
        try {
            xhr.send(params);
            iimDisplay(xhr.status);
//ВОТ ТУТ СТАТУС ПОКАЗЫВАЕТ 200
            iimPlayCode('PAUSE');
            if (xhr.status != 200) {
                out = {
                    isSolved: false,
                    hasError: true,
                    errorText: xhr.statusText,
                    answer: ''
                };
            } else {
                var res = xhr.responseText;
//А ВОТ ТУТ В КОНСОЛЬ ВЫВОДИТ ERROR
                window.console.log(res);
                iimPlayCode('PAUSE');
                var res = JSON.parse(xhr.responseText);
                if (res.status == 1) {
                    checkSolution(res.request, anticaptchingKeys);
                } else {
                    out = {
                        isSolved: false,
                        hasError: true,
                        errorText: xhr.statusText,
                        answer: ''
                    };
                }
            }

        } catch (e) {
            out = {
                isSolved: false,
                hasError: true,
                errorText: '',
                answer: ''
            };

        }

UPD! После отправки запроса вывела объект XMLHttpRequest в консоль. Вот что показывает:
XMLHttpRequest { onreadystatechange: null, readyState: 4, timeout: 60000, withCredentials: false, upload: XMLHttpRequestUpload, responseURL: "http://rucaptcha.com/in.php", status: 200, statusText: "OK", responseType: "", response: "ERROR" }

А вот пример с выключенным Капмонстром, с разгадкой через Сервис Капча Гуру:
XMLHttpRequest { onreadystatechange: null, readyState: 4, timeout: 60000, withCredentials: false, upload: XMLHttpRequestUpload, responseURL: "http://api.captcha.guru/in.php", status: 200, statusText: "OK", responseType: "", response: "OK|9179953" }
 
Последнее редактирование:

evgen_po

Client
Регистрация
27.08.2013
Сообщения
848
Благодарностей
531
Баллы
93
А у Вас в Капмонстре вообще аддон куплен, который имеет возможность разгадывать через sitekey?
Насколько я помню изначально Кампмонстр разгадывает каптчу через картинки, а чтобы он мог разгадывать рекапчту через sitekey - там дополнительно докупается аддон под это дело
 

olushka84

Новичок
Регистрация
14.01.2020
Сообщения
8
Благодарностей
0
Баллы
1
А у Вас в Капмонстре вообще аддон куплен, который имеет возможность разгадывать через sitekey?
Насколько я помню изначально Кампмонстр разгадывает каптчу через картинки, а чтобы он мог разгадывать рекапчту через sitekey - там дополнительно докупается аддон под это дело
Да. Монстр демо версия. Но поддержка подключила данный аддон на три дня.
1579085418614.png
 

olushka84

Новичок
Регистрация
14.01.2020
Сообщения
8
Благодарностей
0
Баллы
1
Короче, насколько я поняла ответы от Капмонстра не надо парсить из Json, а обращаться к ним как к свойствам объекта. Вроде подвижки появились...
 

olushka84

Новичок
Регистрация
14.01.2020
Сообщения
8
Благодарностей
0
Баллы
1
В общем и целом проблема решилась. Как я и говорила, ответы от Капмонстра не нужно парсить как Json. Обращаюсь к запросам как к свойствам объекта, остальное дело техники.
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 912
Баллы
113

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)