6yntar05
@6yntar05
Я клоун и это не обсуждается

Бот VK не работает в беседах, почему?

Здравствуйте, пример бота, слышит сообщения в ЛС сообщества, не слышит в беседах. Админа выдавал боту в беседе, версия long pool 5.107, все разрешения.
В чем может быть дело?
import vk_api
from vk_api.longpoll import VkLongPoll, VkEventType
from vk_api import VkUpload
from vk_api.utils import get_random_id

vk_session = vk_api.VkApi(token="Token")
session_api = vk_session.get_api()
longpoll = VkLongPoll(vk_session)
vk = vk_session.get_api()

#chat_id

for event in longpoll.listen():
    print(event)
    if event.type == VkEventType.MESSAGE_NEW:
        print(event.text)
        print(event)
  • Вопрос задан
  • 1815 просмотров
Решения вопроса 1
WolfInChains
@WolfInChains
Вместо
VkLongPoll, VkEventType
использовать
VkBotLongPoll, VkBotEventType
Пример
import vk_api
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType

vk = vk_api.VkApi(token="ТОКЕН")
vk._auth_token()
vk.get_api()
longpoll = VkBotLongPoll(vk, АЙДИ ГРУППЫ)


def send_msg(peer_id: int, message: str, attachment: str = ""):
    return vk.method("messages.send", {**locals(), "random_id": 0})

while True:
    try:
       for event in longpoll.listen():
           if event.type == VkBotEventType.MESSAGE_NEW:
               if event.object.peer_id != event.object.from_id: #Для беседы
                   if event.object.text == "Привет":
                       send_msg(event.obj.peer_id, "Пока")
                   else:
                       send_msg(event.obj.peer_id, "Я не знаю такой команды")
               if event.object.peer_id == event.object.from_id: #Для Лс
                   if event.object.text == "Привет":
                       send_msg(event.obj.peer_id, "Пока")
                   else:
                       send_msg(event.obj.peer_id, "Я не знаю такой команды")
    except Exception as e:
        print(repr(e))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы