Telegram机器人:如何获取群聊投票结果技术咨询
获取Telegram投票的用户投票数据方案
核心思路
要获取用户的投票数据,核心是监听Telegram推送的投票更新事件,同时也可以主动调用API获取投票的汇总结果,分两种场景处理:
1. 实时收集单个用户的投票记录
当用户完成投票后,Telegram会主动向你的机器人推送PollAnswer类型的更新,你需要做以下操作:
- 开启更新接收权限:确保你的机器人通过webhook或
getUpdates接口能接收poll_answer类型的更新(如果不指定更新类型,默认会接收所有类型,也可以明确指定只接收该类型以减少冗余)。 - 匹配目标投票:收到
PollAnswer更新后,提取其中的poll_id,和你之前存储的投票ID做匹配,确认是你关注的投票。 - 提取并存储数据:更新对象里的关键数据包括:
user:投票用户的ID、用户名等身份信息option_ids:用户选中的选项ID数组(单选投票时数组长度为1,多选则对应多个ID)
把这些数据关联对应的poll ID存储到你的数据库中,就能实现单个用户投票数据的收集。
2. 主动获取投票的汇总结果
如果需要获取某一投票的当前整体统计数据(比如总投票数、各选项得票数),可以调用getPoll API,传入你存储的poll_id。接口返回的Poll对象会包含:
total_voter_count:总投票人数options:每个选项的详情,其中voter_count字段是该选项的得票数
注意事项
- 确保机器人在群聊中有足够权限:需要能读取群聊消息,建议将机器人设置为群管理员,或者确保群聊的权限设置允许机器人读取消息。
- 如果你使用第三方Bot开发库(如python-telegram-bot、pyrogram),这些库通常已经封装了
PollAnswer的处理逻辑,直接注册对应的事件处理器即可,无需手动解析原始更新数据。
内容的提问来源于stack exchange,提问作者user3918128
相关产品推荐
相关产品推荐

