negezor / vk-io

Modern VK API SDK for Node.js
https://npm.im/vk-io
MIT License
545 stars 86 forks source link

Ошибка совместной работы onCaptcha и processingCaptcha #541

Open fortune1dev opened 1 year ago

fortune1dev commented 1 year ago

После исправления #540 появляется ошибка при вызове processingCaptcha (которые еще и присвоить нужно вначале, хотя вроде в экземпляре класса, он создается в конструкторе... но может я что-то не так понял): этот метод некорректно вызывает onCaptcha, а именно, в качестве параметра payload типа ICallbackServiceCaptchaPayload туда залетает Promise. Что ломает обработчик. Опять же, может я не разобрался как эти два метода совместно применять (processingCaptcha без onCaptcha не работает ведь?). Может есть рабочий пример кода? Но пока похоже на баг... Буду признателен за оперативное решение проблемы.

С уважением.

negezor commented 1 year ago

Какие именно были внесены изменения? В payload не может попасть Promise, так как processingCaptcha везде получает plain object, ниже все его вызовы: https://github.com/search?q=repo%3Anegezor%2Fvk-io%20processingCaptcha&type=code

Сам по себе processingCaptcha просто вызывает onCaptcha обработчик и ждёт ответа, просто небольшая абстракция выделенная в CallbackService.

fortune1dev commented 1 year ago

Какие именно были внесены изменения? В payload не может попасть Promise, так как processingCaptcha везде получает plain object, ниже все его вызовы: https://github.com/search?q=repo%3Anegezor%2Fvk-io%20processingCaptcha&type=code

Сам по себе processingCaptcha просто вызывает onCaptcha обработчик и ждёт ответа, просто небольшая абстракция выделенная в CallbackService.

Ну, как-то Promise туда попадает, чему я тоже удивился. Может мне CallbackService нужно подтягивать из Authorization? А не из vk-io?... Подумалось мне, пока писал вам этот ответ. Нужно будет попробовать, если снова буду к этому вопросу возвращаться (просто я уже написал свой обработчик и мне пока не до экспериментов). Сейчас у меня так: const { DirectAuthorization, officialAppCredentials } = require('@vk-io/authorization'); const { VK, CallbackService, resolveResource } = require('vk-io');

Причем при таком подключении, вызов processingCaptcha у меня вообще ошибку undefined выдает. Хотя вон же он определен.

В общем, я потому и создал этот тикет, т.к. было не совсем понятно, откуда они лезут эти ошибки. Т.к. согласно вашему коду, там все ок.