I’m developing a telegram bot. I do this on my code and the question is, why my bot repeat the same first phrase when I put the second command?
TOKEN_BOT = "secret token" bot = telebot.TeleBot(TOKEN_BOT) @bot.message_handler(commands=["hello", "start"]) def send(message): bot.reply_to(message, "Welcome, I am RIOPy! BOT designed to organize your SME to your liking. To start write / start and we will get to work.") bot.polling() def enviar_start (message): bot.reply_to(message, "Great! wait 5 seconds.") #HERE DATABASE CODE time.sleep(5) bot.reply_to, "DATABASE CREATED" bot.polling()
PS: The code is working now. I deleted bot.pulling() under the if, and i put the /hello and /start commands in 2 differents lines.
@bot.message_handler(commands=["hello"]) def send(message): bot.reply_to(message, "Welcome, I am RIOPy! BOT designed to organize your SME to your liking. To start write / start and we will get to work.") @bot.message_handler(commands=["start"]) def enviar_start (message): bot.reply_to(message, "Great! wait 5 seconds.")
Advertisement
Answer
The first thing your bot says when you send the /start command is also the first thing it says when you send the /hello command, because your bot’s message handler for the /hello command is also the message handler for the /start command. To fix this, you need to create two separate message handlers, one for the /hello command and one for the /start command.