vksdk / vk-sdk-kotlin

Unofficial VK SDK, written in Kotlin: make bots, use the API
https://vksdk.github.io/vk-sdk-kotlin
MIT License
70 stars 16 forks source link

Бот из example выключается через час. #19

Closed Egorrko closed 4 years ago

Egorrko commented 4 years ago

В одном потоке запустил бота, в другом выводил в консоль текущее время. Бот выключился ровно через час бездействия(без обращений к боту от пользователей). Вывел ошибку BotsLongPollApi::exceptionHandler::error = com.petersamokhin.vksdk.core.error.VkResponseException: BotsLongPollApi failed retrieving server info after error: bad VK response: Error occurred during the VK response parsing or handling. После этого при повторном запуске выходит та же самая ошибка.

petersamokhin commented 4 years ago

При инициализации VkHttpClient нужно установить HttpClientread и connect таймауты больше 25 секунд.

Например:

OkHttpClient client = new OkHttpClient();
client.setConnectTimeout(30, TimeUnit.SECONDS);
client.setReadTimeout(30, TimeUnit.SECONDS);
HttpClient vkHttpClient = new VkOkHttpClient(client);
Egorrko commented 4 years ago

Сделал так, и подключил логгер. Все равно через час логгер выводит: INFO: {"error":{"error_code":29,"error_msg":"Rate limit reached","request_params":[{"key":"method","value":"groups.getLongPollServer"},{"key":"oauth","value":"1"},{"key":"group_id","value":"195746392"},{"key":"v","value":"5.103"}]} библиотека: BotsLongPollApi::exceptionHandler::error = com.petersamokhin.vksdk.core.error.VkResponseException: BotsLongPollApi failed retrieving server info after error: bad VK response: Error occurred during the VK response parsing or handling

DokanBoy commented 4 years ago

Аналогичная ошибка, но бот выключается через пару секунд.

BotsLongPollApi::exceptionHandler::error = com.petersamokhin.vksdk.core.error.VkResponseException: BotsLongPollApi initiation error: bad VK response: Error occurred during the VK response parsing or handling

petersamokhin commented 4 years ago

@DokanBoy я, к сожалению, не смогу ничего подсказать без логов. К тому же, если ошибка случается при старте, значит, скорее всего, проблема не связана с логикой работы библиотеки — возможно, не проставлена нужная галочка в настройках группы, или проблема с токеном, или что-то вроде того.

Могу посоветовать при инициализации использовать свой http-клиент и вести подробный логгинг запросов, уже на основе ошибки, которую возвращает VK, получится понять в чем проблема.

NikitaBolshakov commented 4 years ago

Правда вылезает вот такая ошибка Screenshot from 2020-08-31 17-18-24

petersamokhin commented 4 years ago

@NikitaBolshakov ошибка говорит о том, что ВК вернул ошибку, но какая там ошибка, здесь не говорится — могу посоветовать тоже самое, добавьте логгер и над ошибкой от ВК можно будет уже думать. На основе только лишь этого стактрейса ничем не смогу помочь.

4uf04eG commented 4 years ago

@Egorrko встретился с той же самой проблемой. Логгер подсказал, что перед ошибкой клиент делает кучу запросов на получение лонгполл-сервера. Оказалось, что при замене сервера не обновляется последнее сообщение. Добавил отправку запроса с получением последних изменений и мой бот спокойно работает уже больше двух часов. #22