Python 电报机器人等待用户回复

Python 电报机器人等待用户回复,python,python-2.7,telegram,telegram-bot,python-telegram-bot,Python,Python 2.7,Telegram,Telegram Bot,Python Telegram Bot,下面的代码是一个电报机器人,它基本上接受一个人的用户名和密码,并验证它以提供他的平均支出 我们看到的问题是,bot等待用户发送用户名和密码的时间10秒,要么浪费时间,要么时间不够。我如何编程,使bot等待用户消息,然后执行下一行(等待触发) 您应该在请求中使用标记并检查来自用户的回复-当回复在收到的reply\u to\u message字段中包含用户名时,您应该发送密码请求等 示例(伪代码): 顺便说一句,在纯文本聊天中询问用户名/密码等私人数据是非常不安全的,也是非常糟糕的做法 def

下面的代码是一个电报机器人,它基本上接受一个人的用户名密码,并验证它以提供他的平均支出

我们看到的问题是,bot等待用户发送用户名和密码的时间10秒,要么浪费时间,要么时间不够。我如何编程,使bot等待用户消息,然后执行下一行(等待触发)

您应该在请求中使用标记并检查来自用户的回复-当回复在收到的
reply\u to\u message
字段中包含用户名时,您应该发送密码请求等


示例(伪代码):


顺便说一句,在纯文本聊天中询问用户名/密码等私人数据是非常不安全的,也是非常糟糕的做法

def highest(intent,chatid,text):
    seq=["What is your Username ?","Password?"]
    send_message(seq[0],chatid)
    time.sleep(6)
    name,chatid = reply_function()
    print name
    send_message(seq[1],chatid)
    time.sleep(6)
    pw,chatid = reply_function()
    print pw
    try:
        flag = obj.validate(name,pw)
        if flag=="Verified":
            for i in obj.avg_transactions():
                send_message(i,chatid)
        else:
            send_message("try again",chatid)
            highest(intent,chatid,text)
     except:
        send_message("try again",chatid)
        highest(intent,chatid,text)
// Asking user for username/password
Bot.SendChatAction(update.Message.Chat.Id, ChatAction.Typing);
Bot.SendTextMessage(update.Message.Chat.Id, "Type your username, please");

// Checking incoming messages for replies
if (update.Message.ReplyToMessage.Text.Contains("your username"))
{
    if (!IsValidUsername(update.Message.ReplyToMessage.Text)) return;
    SaveUsernameToDb(update.Message.Chat.Id, update.Message.ReplyToMessage.Text);
    Bot.SendChatAction(update.Message.Chat.Id, ChatAction.Typing);
    Bot.SendTextMessage(update.Message.Chat.Id, "Username has been successfully saved!");
}
else
{
    ...
}