我真的拖着自己在这里问这个问题,但在谷歌搜索后我觉得还需要它。所以:
我试图在电报中建立一个与Botfather结构相似的机器人。我想为使用我的机器人的用户启用一步一步的配置。所以如果我问你的电子邮件是什么?"我希望他们能够自然地回答这个问题,并且我知道他们回答了什么问题。这就是问题,我似乎无法找到一个好的结构来知道他们回答了哪个问题以及触发了什么。我扫描的每个机器人中的所有文档都只使用这样的结构:
if message.text == 'london'
bot.api.send_message(chat_id: message.chat.id, text: 'Correct!')
end
如果我不知道用户会写什么,或者我是否有针对不同问题的重复接受答案,那么这并不是非常有益。我尝试过使用回复和ForceReply等,但这也会产生一种奇怪的结构,并且看起来不像自然信息一样干净。
简单地说:我如何知道消息是否与问题一起然后触发了什么?
对于一个有点非结构化的问题感到抱歉,希望你们中的一个人能够回答我的问题。
答案 0 :(得分:1)
在我的机器人中,我创建了一个" TelegramChat"在DB中记录并存储在" AwaitingReplyTo"字段引用"问题"和一些相关信息(例如需要更新的帐户的ID)。
类似的东西:
def ask_question(question):
...
telegram_chat_record(chat_id).awaiting_reply_to = "question:" + question
telegram_chat_record.save_to_db()
...
def dispatcher(update):
telegram_chat_record = get_telegram_chat_record(update)
if telegram_chat_record.awaiting_reply_to == "question:What is your favorite city?":
check_reply_to_favorite_city(update)
...