如何实现可以处理多步输入的 Telegram 机器人程序?
How to implement a Telegram bot program that could handle multiple steps of input?
我正在 Python3 中使用电报机器人 API 编写电报机器人。我面临着处理需要多个步骤对联的请求的问题。
例如,对于航空公司搜索机器人:
- 机器人询问出发城市,
- 用户输入姓名,
- 机器人询问目的地,
- 用户输入了另一个名字,
- 在一堆问题之后,机器人 returns 将结果提供给用户。
我能做什么?
你需要有一个问题树,用户可以遍历它(你可以用一个链表来做它,并将这个树保存到数据库中)。
对于每个问题,都有一个方法可以执行某些操作(例如在数据库中存储一些数据)并向用户发送 question/result。每个用户都有一个 CurrentState
,其中包含问题树中用户的状态。用户发送了一个答案,机器人将运行相应的方法并响应用户。
method = //Fetch user CurrentState from db e.g. airlineBot.doSomething
method(TelegramMessage)
我正在 Python3 中使用电报机器人 API 编写电报机器人。我面临着处理需要多个步骤对联的请求的问题。 例如,对于航空公司搜索机器人:
- 机器人询问出发城市,
- 用户输入姓名,
- 机器人询问目的地,
- 用户输入了另一个名字,
- 在一堆问题之后,机器人 returns 将结果提供给用户。
我能做什么?
你需要有一个问题树,用户可以遍历它(你可以用一个链表来做它,并将这个树保存到数据库中)。
对于每个问题,都有一个方法可以执行某些操作(例如在数据库中存储一些数据)并向用户发送 question/result。每个用户都有一个 CurrentState
,其中包含问题树中用户的状态。用户发送了一个答案,机器人将运行相应的方法并响应用户。
method = //Fetch user CurrentState from db e.g. airlineBot.doSomething
method(TelegramMessage)