Python 电报消息处理程序

Python 电报消息处理程序,python,telegram,Python,Telegram,我的代码中有一个非常简单的消息处理程序,我希望它能以这种方式工作: 若用户说“是”,那个么bot会要求输入第一个名字,然后再输入第二个名字。然而,我不能问你的名字和第二个名字。但是,我的输出将是: 名字:是第二个名字:是 我怎样才能解决这个问题 @bot.message_handler(content_types=['text']) def handle_text(message): if message.text == 'YES': bot.send_message(m

我的代码中有一个非常简单的消息处理程序,我希望它能以这种方式工作:

若用户说“是”,那个么bot会要求输入第一个名字,然后再输入第二个名字。然而,我不能问你的名字和第二个名字。但是,我的输出将是:

名字:是第二个名字:是

我怎样才能解决这个问题

@bot.message_handler(content_types=['text'])
def handle_text(message):
    if message.text == 'YES':
        bot.send_message(message.from_user.id, "Your first Name")
        FirstName = message.text
        bot.send_message(message.from_user.id, "Your second Name")
        SecondName = message.text
        bot.send_message(message.from_user.id, "First Name: " + str(FirstName) + " Second Name: " + str(SecondName))
尝试使用。一些库(例如)具有内置的工具和使用方法

但是,如果您的库没有FSM,您可以创建自己的简单状态机。只需将用户步骤保存到字典

states = {}  # key - user_id, value - state

def abstract_handler(...):
    if not states.get(user_id):
        # ask user about his first name here
        states[user_id] = 'first name'
        return

    if states.get(user_id) == 'first name':
        first_name = message.text
        # ask about second name here
        states[user_id] = 'second name'
        return

    if states.get(user_id) == 'second name':
        second_name = message.text
        # etc
附言:这只是对过程的简单解释。您可以将此代码拆分为多个处理程序。别忘了保存用户数据


p.p.S:不要使用CamelCase:)调用变量

消息
从不更改发送的消息,因此
消息。文本
始终为“是”。您需要某种方式来接收用户对名字和姓氏消息的响应。