#python #api #bots #telegram
Вопрос:
Я использую pyTelegramBotAPI, и у меня была идея создать 2 команды для бота: имя пользователя и пароль (не важно для чего), чтобы, как только пользователь бота нажмет на «/имя пользователя», следующее сообщение, которое он отправит, будет его именем пользователя, и то же самое для его пароля:
@bot.message_handler(commands=['username'])
def send_welcome(message):
bot.send_message(message.chat.id, "Type your username: ")
Но тогда я не знаю, как поступить, я пытался с:
@bot.message_handler(commands=['username'])
def send_welcome(message):
bot.send_message(message.chat.id, "Type your username: ")
@bot.message_handler(func=lambda message: True)
def echo_message(message):
bot.send_message(message.chat.id, "So, I'm answering to his username at this point: ")
Однако с тех пор функция никогда не покидается, и все следующие сообщения: «Итак, в данный момент я отвечаю на его имя пользователя: «…
Какая-нибудь помощь?
Ответ №1:
Вам нужно использовать метод bot.register_next_step_handler ().
Итак, измените обработчик команды start в:
@bot.message_handler(commands=['username'])
def send_welcome(message):
msg = bot.send_message(message.chat.id, "Type your username: ")
bot.register_next_step_handler(msg, function)
Вместо function
этого вы должны указать имя функции, которая разрабатывает новое сообщение. Так:
def function(message):
bot.send_message(message.chat.id, "So, I'm answering to his username at this point: {}".format(message.text))
Счастливого кодирования!