python-telegram-bot - 处理 ReplyKeyboardMarkup 的输出
python-telegram-bot - process the output of a ReplyKeyboardMarkup
我正在使用 python-telegram-bot
,我需要处理回复键盘的输出,以便在进一步的步骤中使用它(例如,return 向用户提供基于她的选择的输出) .
这是我的代码
def start(update, context):
reply_keyboard = [['Boy', 'Girl', 'Other']]
update.message.reply_text(
'Hi! My name is Professor Bot. I will hold a conversation with you. '
'Send /cancel to stop talking to me.\n\n'
'Are you a boy or a girl?',
reply_markup=ReplyKeyboardMarkup(reply_keyboard, one_time_keyboard=True))
如何使用用户的选择来return基于它的数据?上面的代码只是将选择打印到聊天中。
我知道您指的是 python-telegram-bot
的 GitHub 中的示例 conversationbot.py
。
当用户从 ReplyKeyboard 中选择一个选项时,它将作为消息发送给机器人。因此,您必须接收该消息。为此,您必须使用 ConversationHandler
,您可以在其中为对话定义 stages/states。
查看您所指的同一示例。 ConversationHandler 的入口点是 /start 命令。然后机器人用键盘回复。这里的下一个阶段是GENDER
(你可以在开始函数中看到return GENDER
)。这里MessageHandler
和regex
一起使用,回调函数是gender()
。当用户从选项中选择时,机器人将回复与 ^(Boy|Girl|Other)$
匹配,如果为真,则调用 gender()
函数。同样,ConversationHandler
中的进一步状态将继续。
最后,ConversationHandler
将在到达最后一个状态或发送/cancel
(回退)时结束。
我正在使用 python-telegram-bot
,我需要处理回复键盘的输出,以便在进一步的步骤中使用它(例如,return 向用户提供基于她的选择的输出) .
这是我的代码
def start(update, context):
reply_keyboard = [['Boy', 'Girl', 'Other']]
update.message.reply_text(
'Hi! My name is Professor Bot. I will hold a conversation with you. '
'Send /cancel to stop talking to me.\n\n'
'Are you a boy or a girl?',
reply_markup=ReplyKeyboardMarkup(reply_keyboard, one_time_keyboard=True))
如何使用用户的选择来return基于它的数据?上面的代码只是将选择打印到聊天中。
我知道您指的是 python-telegram-bot
的 GitHub 中的示例 conversationbot.py
。
当用户从 ReplyKeyboard 中选择一个选项时,它将作为消息发送给机器人。因此,您必须接收该消息。为此,您必须使用 ConversationHandler
,您可以在其中为对话定义 stages/states。
查看您所指的同一示例。 ConversationHandler 的入口点是 /start 命令。然后机器人用键盘回复。这里的下一个阶段是GENDER
(你可以在开始函数中看到return GENDER
)。这里MessageHandler
和regex
一起使用,回调函数是gender()
。当用户从选项中选择时,机器人将回复与 ^(Boy|Girl|Other)$
匹配,如果为真,则调用 gender()
函数。同样,ConversationHandler
中的进一步状态将继续。
最后,ConversationHandler
将在到达最后一个状态或发送/cancel
(回退)时结束。