python273 / vk_api

Модуль для создания скриптов для ВКонтакте | vk.com API wrapper
https://pypi.org/project/vk-api/
Apache License 2.0
1.33k stars 324 forks source link

Непостоянное прослушивание longpoll #493

Open LuckyCot112 opened 1 year ago

LuckyCot112 commented 1 year ago

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

Окружение

vk_api: 11.9.9

API: 5.131

Пример

import vk_api
from vk_api.longpoll import VkLongPoll, VkEventType
import random

token = "my token"
vk = vk_api.VkApi(token=token, api_version='5.131')

longpoll = VkLongPoll(vk, wait=25)

def write_msg(peer_id, message, keyboard = []):
    try:
        vk.method('messages.send', {'peer_id': peer_id, 'message': message, 'random_id': random.getrandbits(64), 'keyboard': keyboard})
    except:
        print(f"Error to send message \"{message}\" to id{peer_id}")

#Показывает, что сообщения отправляются
write_msg(YOUR_ID, "API is working")
print("RELOADED")
for event in longpoll.listen():
    print(event.type)
# В какой-то момент longpoll при запуске не принимает события и даже print не срабатывает. Потому этого должно быть достаточно