You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Telegram Bot代码实现带唯一正确答案的Quiz?

修改方案:将Telegram Bot普通Poll转为Quiz形式

直接修改send_poll方法的参数即可实现Quiz功能,无需使用InlineButtons,以下是完整修改后的代码:

@bot.callback_query_handler(func=lambda call: True)
def callback_handler(call):
    if call.data == 'start':
        question = "Which city is the capital of France?"
        options = ["Paris", "Berlin", "Madrid", "London"]
        # 正确选项在options列表中的索引(从0开始计数)
        correct_option_index = 0
        bot.send_poll(
            chat_id=call.message.chat.id,
            question=question,
            options=options,
            type='quiz',  # 指定消息类型为Quiz
            correct_option_id=correct_option_index,  # 设置正确选项的索引
            is_anonymous=False,  # 可选:关闭匿名,显示答题者身份(默认True)
            explanation="Paris is the capital and most populous city of France.",  # 可选:答题后显示的解释
            explanation_parse_mode='MarkdownV2'  # 可选:支持Markdown格式美化解释
        )

关键参数说明

  • type='quiz':核心参数,将普通投票切换为Quiz模式,Telegram会自动处理答案的对错判定逻辑。
  • correct_option_id:必填参数,对应options列表中正确选项的索引(从0开始),这里"Paris"是第一个选项,所以填0。
  • is_anonymous:可选参数,默认匿名答题,若需要展示答题者的身份信息,可设置为False。
  • explanation:可选参数,用户提交答案后会展示的补充说明,帮助用户理解正确答案的依据。
  • explanation_parse_mode:可选参数,支持MarkdownV2或HTML格式,用于给解释内容添加样式(比如加粗、斜体)。

修改完成后,用户提交答案时,Telegram会自动验证答案正确性,只有选择正确选项才会被标记为答对,完全满足Quiz的需求。

内容的提问来源于stack exchange,提问作者MRUT

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 10:31:05