@korjio

Как сделать ответ на неопознанное сообщение VkBotLongPoll?

Добрый вечер! Пытаюсь написать бота для ВК. Возник вопрос. Как сделать, чтобы в ответ на неопознанное сообщение бот отвечал например "Я Вас не понимаю. Воспользуйтесь клавиатурой". Если есть возможность, то желательно с примером кода
  • Вопрос задан
  • 56 просмотров
Решения вопроса 2
WolfInChains
@WolfInChains
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))
Ответ написан
total4c
@total4c
Говнокодер
commands = {"привет": "Здравствуй!", "пока": "До свидания!"}


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


def main():
	for event in longpoll.listen():
		if event.type == VkBotEventType.MESSAGE_NEW:
			send_msg(
				event.obj.peer_id,
				commands.get(event.obj.text.lower(), "Я не знаю такой команды")	
			)


if __name__ == "__main__":
	main()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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