【问题标题】:How to get several inputs in one command in telegram bot api?如何在电报机器人api中的一个命令中获取多个输入?
【发布时间】:2021-06-26 13:22:09
【问题描述】:

例如,bot 有命令/set_coordinates。它接受纬度和经度,如下所示:

  • 机器人:输入纬度
  • 用户:16.4353
  • 机器人:输入经度
  • 用户:140.4325

问题是机器人每条消息只接收一个坐标,要理解它需要请求纬度还是经度,它应该记住以前的消息。例如:

latitude_was_set = False
latitude, longitude = 0, 0

def set_coordinates_handler(update: Update, context: Context):
    received_text = update.message.text
     
    # First coordinate
    if not self.latitude_was_set:
       latitude = float(received_text)
       self.latitude_was_set = True
    else:
       longitude = float(received_text)

这是一个简化的功能,没有打印和其他东西来证明我需要标记latitude_was_self。问题是我应该将所有内容都存储在数据库中, 因为两个用户可以有不同的latitude_was_set 并且python 中的变量不适合它。似乎不恰当地使用数据库在那里存储标志。如果我需要在一个命令中获取更多数据,这个问题会变得更大。除了使用数据库作为标志存储之外,还有其他选择吗?

这个问题可能很傻,但这是我的第一个机器人 :)

【问题讨论】:

    标签: python-telegram-bot


    【解决方案1】:

    PTB 为此类用例提供了两种有用的机制:


    免责声明:我目前是python-telegram-bot的维护者

    【讨论】:

    • 非常感谢,正是我需要的!
    猜你喜欢
    • 2017-02-20
    • 2022-11-12
    • 1970-01-01
    • 1970-01-01
    • 2021-08-28
    • 2021-03-10
    • 2021-03-24
    • 2021-05-12
    • 1970-01-01
    相关资源
    最近更新 更多