Python 电报消息处理程序
我的代码中有一个非常简单的消息处理程序,我希望它能以这种方式工作: 若用户说“是”,那个么bot会要求输入第一个名字,然后再输入第二个名字。然而,我不能问你的名字和第二个名字。但是,我的输出将是: 名字:是第二个名字:是 我怎样才能解决这个问题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.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:)调用变量
消息
从不更改发送的消息,因此消息。文本
始终为“是”。您需要某种方式来接收用户对名字和姓氏消息的响应。