簡體   English   中英

使用 InlineKeyboardButton python 電報機器人發送命令

[英]Send a command using InlineKeyboardButton python telegram bot

在 python 電報機器人中, InlineKeyboardButton是否可以在按下時發送/cancel之類的命令?

例如,當用戶按下取消按鈕時,他們將自動發送 /cancel 命令,然后由機器人處理。

從這里的例子:

https://github.com/python-telegram-bot/python-telegram-bot/blob/master/examples/inlinekeyboard2.py

conv_handler = ConversationHandler(
    entry_points=[CommandHandler('start', start)],
    states={
        FIRST: [CallbackQueryHandler(one, pattern='^' + str(ONE) + '$'),
                CallbackQueryHandler(two, pattern='^' + str(TWO) + '$'),
                CallbackQueryHandler(three, pattern='^' + str(THREE) + '$'),
                CallbackQueryHandler(four, pattern='^' + str(FOUR) + '$')],
        SECOND: [CallbackQueryHandler(start_over, pattern='^' + str(ONE) + '$'),
                 CallbackQueryHandler(end, pattern='^' + str(TWO) + '$')]
    },
    fallbacks=[CommandHandler('start', start)]
)

我希望能夠這樣做,以便我可以更改我的入口點並在按下按鈕時使用不同的對話處理程序。

然后按下按鈕將生成一個 /cancel 命令,該命令會將機器人帶到不同的對話處理程序。

這可能嗎?

要處理InlineKeyboardButton的輸入,您需要定義一個CallbackQueryHandler ,它將處理用戶按下的按鈕的callback_data 即使您指定了一個命令, CallbackQueryHandler也將處理輸入

 #'/help' sent to CallbackQueryHandler
 options.append(InlineKeyboardButton("a", callback_data="/help"))

如果我正確理解你想要實現的目標,我會定義一個 CallbackQueryHandler 方法,然后控制工作流程,甚至可以調用命令(如果這是你需要做的)

def callback_query_handler(update, context):
   # process input
   input = update.callback_query.data
   # invoke handler
   if input == '/help':
       help_command_handler(update, context)  

暫無
暫無

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

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