@dada_arewnd

Почему бот не видит сообщения?

бот говорит что меня не понял.
from vk_api.keyboard import VkKeyboardColor, VkKeyboard
from token_0 import token
import vk_api
from vk_api.longpoll import VkLongPoll, VkEventType
import random


sess = vk_api.VkApi(token= token)
vk = sess.get_api()
longpoll = VkLongPoll(sess)
 
print('Бот запущен!')


def send(id,text, keyboard=None):
    
    post = {'user_id' : id,
            'message' : text, 
            'random_id' : 0
    }

    if keyboard != None:
        post["keyboard"] = keyboard.get_keyboard()
    else:
        post = post

    sess.method('messages.send',post)


for event in longpoll.listen():
    if event.type == VkEventType.MESSAGE_NEW and event.to_me:
            try:
                msg = event.text.lower()
                id = event.user_id
            except:
                pass
            if msg == "Старт" or  msg == "Меню":

                    
                keyboard = VkKeyboard()
                keyboard.add_button("Спонсор",VkKeyboardColor.PRIMARY)

                send(id, "Меню", keyboard)
            
            if msg == "Спонсор":
                keyboard = VkKeyboard()
                keyboard.add_button("Меню",VkKeyboardColor.NEGATIVE)
                send(id, "Нету", keyboard)
            
            else:
                keyboard = VkKeyboard()
                keyboard.add_button("Меню",VkKeyboardColor.POSITIVE)
                send(id, "Я вас не понял", keyboard)
  • Вопрос задан
  • 93 просмотра
Пригласить эксперта
Ответы на вопрос 3
Vindicar
@Vindicar
RTFM!
Потому что ты не думаешь, что пишешь.
msg = event.text.lower()
Ты переводишь сообщение в нижний регистр...
if msg == "Старт" or msg == "Меню":
...а сравниваешь со строкой не в нижнем. Конечно, она никогда не будет равна.
Ответ написан
SoreMix
@SoreMix Куратор тега Python
yellow
Потому что текст приводится к нижнему регистру и потом сравнивается с текстом, в котором есть заглавные
Ответ написан
Комментировать
@shotni4k
Либо перестань приводить msg к нижнему регистру
msg = event.text.lower()
Либо приведи условие к нижнему регистру
if msg == "старт" or msg == "меню":
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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