Как ловить сообщения с бесед с помощью Longpoll на VK API?

Хочу спокойно начать писать бота, вроде всё тщательно инициализировал и проверил, но бот не получает эвенты с сообщений в беседе, или вообще с каких либо действий в беседе - только напрямую в личку бота.
Помогите :(
import vk_api
from vk_api.longpoll import VkLongPoll, VkEventType

vk_session = vk_api.VkApi(token = '9cda...f6ba')
longpoll = VkLongPoll(vk_session)
vk = vk_session.get_api()

class Debug:
    def __init__(self):
        self.trace_c = 0
        self.trace_p = []
    def msg(self, x):
        print('({}) {}'.format(self.trace_c, x))
        self.trace_p.append(x)
        self.trace_c += 1

db = Debug()

for event in longpoll.listen():
    db.msg('event')
  • Вопрос задан
  • 780 просмотров
Решения вопроса 1
@bublov
Проблема в том что вы используете VKLongPoll, а нужно VKBotLongPoll, плюс еще для стабильной работы можно добавить несколько конструкций.
Правильный код будет таким:
import vk_api
from vk_api.bot_longpoll import VKBotLongPoll, VKBotEventType
def main():
        bot_session = vk_api.VkApi(token="token")
        vk = bot_session.get_api()
        while True:
            longpoll = VkBotLongPoll(bot_session, "id группы")
            for event in longpoll.listen():
            #код бота
if __name__ == '__main__':
    main()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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