Telegram Bot单击内联查询结果执行回调

2024-06-25 07:23:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试为新机器人使用内联模式。
我的用例:
当有人键入@my_bot abc时,我想调用find_parties(update)将其所有可用的参与方显示为内联结果。一旦用户单击其中一方,我想调用associate_string(update, party),以便将abc持久化到我的数据库中。当前,我的内联处理程序如下所示:

def inline_handling(update, context):
    query = update.inline_query.query
    if not query:
        return

    inline_options = []
    for party in find_parties(update):
        inline_options.append(
            InlineQueryResultArticle(
                id=party['id'],
                title=party['name'],
                input_message_content=InputTextMessageContent(party['name'])
        )
    )
    context.bot.answer_inline_query(update.inline_query.id, inline_options)

使用这个处理程序,我只显示所有参与方的名称,当其中一个被单击时,该名称被发送到聊天室。你知道吗

如果可能的话,我想用某种调用associate_string的内联查询回调结果替换InlineQueryResultArticle。遗憾的是,我还没有找到任何使用回调的InlineQueryResult实现。
我确实在文档中找到了另一个名为CallbackQuery的对象,但我不知道如何在内联查询中使用它。你知道吗


Tags: id处理程序stringpartybotcontextinlineupdate