2017-07-30 76 views
0

我的解決方案中的用戶通過在電報中鍵入消息一步一步地進行。問題是服務器重啓後他的狀態沒有保存,他需要重新開始。pyTelegramBotAPI。如何在next_step_handler解決方案中保存狀態?

例如,如果'process_mid'上的用戶在重新啓動後執行了一步,他將無法進入'process_end'。用戶只能通過輸入'start'命令才能開始新的階段。

bot = telebot.TeleBot(TOKEN) 


@bot.message_handler(commands=['start']) 
def process_start(message): 
    text = 'start' 
    bot.send_message(message.chat.id, text) 
    bot.register_next_step_handler(message, process_mid) 


def process_mid(message): 
    text = 'mid' 
    bot.send_message(message.chat.id, text) 
    bot.register_next_step_handler(message, process_end) 


def process_end(message): 
    text = 'end' 
    bot.send_message(message.chat.id, text) 

bot.polling(none_stop=True) 

回答

0

從我這個機器人的經驗,你需要將所有的數據保存到一個文件(或數據庫爲此事),如果你想從你離開的地方去接。

您可以一路保存您的進度,並在process_start函數中用函數入口處的message.chat.id標識用戶,並且如果該值存在於文件(數據庫)中,則相應地註冊下一步。