【问题标题】:Poll in Python aiogram在 Python aiogram 中进行投票
【发布时间】:2022-11-24 14:18:09
【问题描述】:

我想使用 aiogram 库向用户发送测验投票,并检查用户是否选择了正确答案。我如何获得这些信息? (用户是否勾选正确答案)

我不确定如何处理民意测验,希望您能提供帮助。

【问题讨论】:

  • await bot.send_poll(chat_id=user_id, question='Your answer?', options=['A)', 'B)', 'C'], type='quiz', correct_option_id=1)。所以,我的代码是这样的。我如何获取用户选择的答案的信息(是否正确)

标签: python telegram aiogram


【解决方案1】:
@dp.message_handler()
async def poll(message: types.Message):
    await message.answer_poll(question='Your answer?',
                              options=['A)', 'B)', 'C'],
                              type='quiz',
                              correct_option_id=1,
                              is_anonymous=False)

is_anonymous=假- 没有它的必需参数你无法处理答案

@dp.poll_answer_handler()
async def poll_answer(poll_answer: types.PollAnswer):
    # this handler starts after user choosed any answer 

    answer_ids = poll_answer.option_ids # list of answers     
    
    user_id = poll_answer.user.id
    poll_id = pollanswer.poll_id

您可以将正确答案保存在某个全局变量中,并将其等于列表中的第一个元素:answer_ids[0]

投票答案包含此属性:

{
 "poll_id": "", 
 "user": {
          "id": , 
          "is_bot": , 
          "first_name": "", 
          "username": "", 
          "language_code": ""
         }, 
 "option_ids": []
}

【讨论】:

    【解决方案2】:

    嗨,我想知道如何将民意调查链接到用户的回复?

    这是我的代码 enter image description here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-15
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 2022-11-14
      相关资源
      最近更新 更多