Написал бота на telebot, но есть проблема, то что в случае ошибки пользователя (нажатие на кнопку 2 раза, либо введет команду /start >=2 раз), бот отправляет несколько сообщений, в зависимости, от количества нажатых кнопок. Видел кучу ответов на такой вопрос, то что рекомендуют использовать
bot.polling(skip_pending=True)
также вставлял и в
bot = telebot.TeleBot('token', skip_pending=True)
, также писал и
bot.infinity_polling()
и
bot.infinity_polling(skip_pending=True)
, ну и
bot.delete_webhook()
- не помогло, на форуме перерыл, ничего не нашел другого.
Как можно решить данную проблему? Для лучшего понимания, вот скрин:
Ну и собственно, пример кода:
import telebot
bot = telebot.TeleBot(token)
@bot.message_handler(commands=['start', 'help'])
def main(message):
button = types.ReplyKeyboardMarkup(resize_keyboard=True)
button.add(types.KeyboardButton('Привет'))
msg = bot.send_message(message.chat.id, 'Привет', reply_markup=button)
bot.register_next_step_handler(msg, next)
@bot.message_handler(func=lambda m: True)
def next(message):
if message.text == 'Привет':
hi(message)
@bot.message_handler(func=lambda m: True)
def hi(message):
bot.send_message(message.chat.id, 'Да, привет, как дела?')
bot.polling(skip_pending=True)