Скрипт решения капчи ВК.
Беда в первом вызове this.callMethod(name, options, callback); внутри неё же. Я понимаю, что проблема в её вызове из другой функции, но как это всё-таки сделать?
Без "this." тоже не работает
Ошибка, с которой отваливается: this.callMethod(name, options, callback);
TypeError: Cannot read property 'callMethod' of undefined
callMethod(name, options, callback) {
if(options['access_token'] !== false)
options['access_token'] = this.token;
if(name != 'messages.getLongPollServer')
options['v'] = this.botVer;
request({
url: this.apiUrl + name,
method: 'POST',
formData: options,
timeout: 20000
}, (error, response, body) => {
try {
if (!error && response.statusCode === 200) {
let temp = JSON.parse(body);
if(temp.error!=undefined) {
if(temp.error['error_code']==14) {
console.log('ANTIGATE: '+temp.error['captcha_img']);
solver.solve(temp.error['captcha_img'], function(err, answer){
if (err)
console.log('ANTIGATE ERROR: '+err);
else
{
options['captcha_sid'] = temp.error['captcha_sid'];
options['captcha_key'] = answer;
console.log('ANTIGATE ANSWER: '+answer);
this.callMethod(name, options, callback);
}
});
}
}
else
callback(body);
} else {
logger.error(`[callMethod] ${name} ${error} ${response}`);
if(body === undefined) this.callMethod(name, options, callback);
}
} catch(e) { logger.error(`[callMethod] ${e}`) }
})
}