电报机器人单击内联查询结果时执行回调

时间:2019-10-07 20:31:12

标签: python telegram telegram-bot

我正在尝试将内联模式用于新的机器人。
我的用例:
当有人键入@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)

使用此处理程序,我只显示所有参与者的姓名,当单击其中一个参与者时,该姓名将发送到聊天室。

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

1 个答案:

答案 0 :(得分:0)

我所描述的行为对于电报机器人来说是不存在的。但是,有一个ChosenInlineResultHandler,只要用户执行了InlineQuery,就会调用它。