Ошибка в кде бота телеграмм для python
Использую модуль telebot написал следующий код
import telebot
bot = telebot.TeleBot('тут токен')
keyboard1 = telebot.types.ReplyKeyboardMarkup(True, True)
keyboard1.row('текст1')
keyboard2 = telebot.types.ReplyKeyboardMarkup(True, True)
keyboard2.row('текст2', 'текст2', ' текст 2', ' текст2 ', ' текст2 ')
keyboard3 = telebot.types.ReplyKeyboardMarkup(True, True)
keyboard3.row(' текст3 ', ' текст3 ', ' текст3 ', ' текст 3')
@bot.message_handler(commands=['start'])
def start_message(message):
bot.send_message(message.chat.id, ' текст0.1 ', reply_markup=keyboard1)
@bot.message_handler(content_types=['text'])
def send_text(message):
bot.send_message(message.chat.id, ' текст0.2 ', reply_markup=keyboard2)
@bot.message_handler(content_types=['text'])
def send_text(message):
bot.send_message(message.chat.id, ' текст0.3 ', reply_markup=keyboard3)
bot.polling()
При его запуске бот доходил до "текс0.2" выдавал нужные кнопки, но при их нажатии код начинает цикл и выдаёт "тект0.2" вновь, с прикреплёнными к нему кнопками. Подскажите пожалуйста.
Ответы (1 шт):
Автор решения: SKIP
→ Ссылка
Две функции с одинаковым именем не могут адекватно существовать. Если я не ошибаюсь вы хотели сделать так:
@bot.message_handler(content_types=['text'])
def send_text(message):
if message.text in ('текст2', 'текст2', ' текст 2', ' текст2 ', ' текст2 '):
bot.send_message(message.chat.id, ' текст0.3 ', reply_markup=keyboard3)
else:
bot.send_message(message.chat.id, ' текст0.2 ', reply_markup=keyboard2)