繁体   English   中英

单击多个内联按钮后如何向用户显示结果

[英]How do show the result to user after he or she clicks multiple inline buttons

所以这是我的代码。 基本上你们都熟悉地铁......我想创建一个部分,当用户单击多个按钮然后单击确定时,它会返回用户单击的任何内容,除了确定。

def sauce(update: Update, context: CallbackContext) -> int:
        if update.message.text == "Y" or update.message.text == "y":
            keyboard = ([
                    InlineKeyboardButton("No Sauce",callback_data='No Sauce'),
                    InlineKeyboardButton("Chipotle Southwest", callback_data='Chipotle Southwest'),
                    InlineKeyboardButton("Ranch", callback_data='Ranch'),
                    InlineKeyboardButton("BBQ", callback_data='BBQ'),
                    InlineKeyboardButton("Chilli Sauce", callback_data='Chilli Sauce'),
                    InlineKeyboardButton("Tomato Sauce", callback_data='Tomato Sauce'),
                    InlineKeyboardButton("Mustard", callback_data='Mustard'),
                    InlineKeyboardButton("Mayonese", callback_data='Mayonese'),
                    InlineKeyboardButton("Sweet Onion", callback_data='Sweet Onion'),
                    InlineKeyboardButton("Hot Pepper", callback_data='Hot Pepper'),
                    InlineKeyboardButton("Cheese Sauce", callback_data='Cheese Sauce'),
                    InlineKeyboardButton("Sweet Chilli", callback_data='Sweet Chilli'),
                    InlineKeyboardButton("Garlic Aioli", callback_data='Garlic Aioli'),
                    InlineKeyboardButton("Honey Mustard", callback_data='Honey Mustard'),
                ])
            reply_markup = InlineKeyboardMarkup([[button] for button in keyboard])

            update.message.reply_text('Please choose your sauces:', reply_markup = reply_markup)
            return CHECK2

        elif update.message.text == "N" or update.message.text == "n":
            update.message.reply_text("Please re-pick your option")
            return vegetables(update,context)

def check2(update: Update, context: CallbackContext) -> int:
        global sauces
        query = update.callback_query
        query.answer()
        sauces += query.data + ","
        query.edit_message_text(text=f"Selected option: {sauces}. Anymore(MAX 2)? Y/N")
        return SEASONING

我只收到用户点击一次的任何内容。 例如,如果他单击“无蔬菜”,他会返回“无蔬菜”,但如果我单击多个按钮,则没有任何反应。

您可以使用一个字典,其键是 UserID 并且在第一步中有一个空列表

当用户单击这些按钮中的任何一个时,带有所需和适当文本的数据将输入到您的列表中。

最后,您可以获得列表的值 单击确定按钮后,您必须将列表设置为空值

要确定每个密钥的状态,您还可以通过检查列表来确认或拒绝每个密钥

这种方式是一个答案,如果你接受了我说的想法,你可以很容易地实现它

您可以存储每个用户/聊天的数据。 只需用空列表定义一些变量并从那里的内联按钮推送新值。

有关存储机器人、用户和聊天相关数据的更多文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM