簡體   English   中英

Botfather一步一步的機器人(電報/紅寶石)

[英]Botfather step-by-step bot (telegram/ruby)

我真的一直拖着自己在這里問這個問題,但在谷歌搜索后我覺得這是必要的。 所以:

我正在嘗試用電報中的Botfather構建一個類似結構的機器人。 我想為使用我的機器人的用戶啟用一步一步的配置。 所以,如果我問“你的電子郵件是什么?” 我希望他們能夠自然地回答這個問題,我會知道他們回答了什么問題。 這就是問題,我似乎無法找出一個好的結構來知道他們回答了哪個問題以及觸發什么。 我掃描的每個機器人中的所有文檔都使用如下結構:

if message.text == 'london'
  bot.api.send_message(chat_id: message.chat.id, text: 'Correct!')
end

當我不知道用戶會寫什么,或者我是否有不同問題的重復接受答案時,這並不是非常有用。 我嘗試過使用回復和ForceReply等,但這也會創建一個奇怪的結構,並且在feed中看起來不像自然消息一樣干凈。

簡單地說:我如何知道消息是否與問題一起然后觸發了什么?

對於一個有點非結構化的問題感到抱歉,希望你們中的一個人能夠回答我的問題。

在我的機器人中,我正在DB中創建一個“TelegramChat”recod,並在“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)
  ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM