Мне нужно сделать базу данных друзей в которой будет содержаться информация когда друг зашёл/вышел из сети. До этого с longpoll не работал, только api методы. Пытался реализовать свой план на JS используя модуль vk-io, но не удалось, не приходило событие о том что друг стал онлайн/офлайн, хотя событие о получении нового сообщения приходило. Попытался на пайтоне используя vkbottle - также не получается, это событие просто не проходит, хотя в документации оно есть. Вот сам код:
from config import token_user
from typing import TYPE_CHECKING, Optional
from vkbottle import Bot
from vkbottle.framework.labeler import UserLabeler
from vkbottle.modules import logger
from vkbottle.polling.user_polling import UserPolling
if TYPE_CHECKING:
from vkbottle.api import ABCAPI
from vkbottle.exception_factory import ABCErrorHandler
class BotMessagesPooling(UserPolling):
"""The bot uses the User Long Poll to get its events.
For example, such events can be exiting or entering a conversation.
"""
def __init__(
self,
api: Optional["ABCAPI"] = None,
user_id: Optional[int] = None,
wait: Optional[int] = None,
mode: Optional[int] = 8+64,
rps_delay: Optional[int] = None,
error_handler: Optional["ABCErrorHandler"] = None,
):
super().__init__(
api=api,
user_id=user_id,
wait=wait,
mode=mode,
rps_delay=rps_delay,
error_handler=error_handler,
)
async def get_server(self) -> dict:
logger.debug("Getting polling server...")
return (await self.api.request("messages.getLongPollServer", {}))["response"]
bot = Bot(token_user, labeler=UserLabeler(), polling=BotMessagesPooling())
bot.run_forever()