Задать вопрос
@danilkapuh

Telegram bot python. Как сделать если послали именно то сообщение которое ты задал чтоб бот отвечал?

Вот код -
import telebot
import config
from telebot import types

bot = telebot.TeleBot(config.token)

@bot.message_handler(commands=['start'])
def start(m):
     msg = bot.send_message(m.chat.id, 'Привет!')
     keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
     keyboard.add(*[types.KeyboardButton(name) for name in ['Шерлок Холмс', 'Доктор Ватсон']])
     bot.send_message(m.chat.id, 'Кого выбираешь?',
                      reply_markup=keyboard)
     bot.register_next_step_handler(msg, name)
<b>
def name(m):
     if m.text == 'Шерлок Холмс':
          bot.send_message(m.chat.id, '*Ты выбрал Шерлока Холмса', parse_mode='Markdown')
     elif m.text == 'Доктор Вастсон':
          bot.send_message(m.chat.id, '*Ты выбрал Доктора Ватсона', parse_mode='Markdown')</b>

bot.polling()


Но когда я нажимаю на кнопку выводится текст но ответа от бота нету!

В чём ошибка?

Если нужно - t.me/castlewarsbot

Заранее спасибо!
  • Вопрос задан
  • 833 просмотра
Подписаться 1 Средний 2 комментария
Решения вопроса 1
@trofimovdev
Python
@bot.message_handler(content_types=["text"])
def messages(message):
	if 'шерлок' in message.text.lower() or 'холмс' in message.text.lower():
		bot.send_message(message.chat.id, 'Вы выбрали Шерлока')
	elif 'доктор' in message.text.lower() or 'ватсон' in message.text.lower():
		bot.send_message(message.chat.id, 'Вы выбрали Ватсона')
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Fast_CD
Все гораздо проще. У вас в коде ошибка:
<b>
def name(m):


Вместо вот этого: "<b>", должен быть хэндлер: @bot.message_handler(content_types=["text"])
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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