在 python telegram bot 命令后接收用户输入的值

Receive the typed value from the user after the command in python telegram bot

例如,我们有一个命令叫做图表/chart 现在我想获取用户在这个命令之后输入的值

示例:/chart 123456 now 我应该如何获得 123456? 这是用于创建命令的代码:

def start(update: Update, context: CallbackContext) -> None:
    """Send a message when the command /start is issued."""
    update.message.reply_text('Hi!')

我阅读了 python 电报机器人文档,但没有找到我要找的东西

要从命令行获取参数,我们可以使用模块 sys

import sys
print 'Number of arguments:', len(sys.argv), 'arguments.'
print 'Argument List:', str(sys.argv)

$ python test.py arg1 arg2 arg3

结果: 参数数量:4 个参数。
参数列表:['test.py'、'arg1'、'arg2'、'arg3']

您提供的代码用于用户输入命令/start

反正可以直接从Update中获取输入消息的内容,然后通过命令拆分消息(因为它returns已经写入的所有内容,包括命令本身)并获得输入命令的参数,如下所示:

def chart(update: Update, context: CallbackContext) -> None:
    """Send a message with the arguments passed by the user, when the command /chart is issued."""
    input_mex = update.message.text
    input_args = input_mex.split('/chart ')[1]
    update.message.reply_text(input_args)

为了使一切正常工作,您必须添加一个 CommandHandler,如下所示:

updater = Updater(token=TOKEN, use_context=True)
# Get the dispatcher to register handlers
dispatcher = updater.dispatcher
dispatcher.add_handler(CommandHandler('chart', chart))

这样,/chart 12345的输出就变成了12345,如图: command executed into the telegram chat