@DanyaManya

Почему не приходит событие "друг стал онлайн" в vk user longpoll?

Мне нужно сделать базу данных друзей в которой будет содержаться информация когда друг зашёл/вышел из сети. До этого с 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()
  • Вопрос задан
  • 89 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы