【问题标题】:Can a Telegram bot run a poll with multiple questions? [closed]Telegram 机器人可以运行多个问题的民意调查吗? [关闭]
【发布时间】:2021-08-05 22:53:57
【问题描述】:

我是一个社会科学研究团队的一员,我们使用非常有限的资源(即我们没有资源来设计自己的应用)进行实地调查。在许多情况下,我们的调查都是在互联网连接不可靠的地区进行的,因此 Google 表单和类似的在线解决方案并不是很有用。

到目前为止,我们一直在使用纸质表格,但我想尝试实施一个 Telegram 机器人,它可以让测量员在现场输入数据。即使存在连接问题,这也应该更容易、更可靠——并不是连接不可用,而是不可靠。调查员将在与机器人的聊天中填写或选择每个问题的答案。

似乎 Telegram 民意调查是最好的方法 - 特别是因为我们的调查通常是多项选择 - 但我不知道如何让 Telegram 民意调查中包含多个问题。奇怪的是,Telegram quizzes 似乎可以做到这一点,但民意调查却不行。 This question 暗示机器人必须实现自己的逻辑来为调查中的每个问题提出新的民意调查,我可以这样做,但与多问题民意调查相比,这不太方便且可能不太可靠。

是否可以在 Telegram 中进行多问题投票?如果是这样,有人可以指出我的相关文档吗?

【问题讨论】:

  • 是的,这是可能的。我创建了一个 Telegram Quiz 机器人,可以分组(在指定时间)和私人聊天中发送多个问题。你可以在这里查看:(群)t.me/QuizPortal(机器人链接)t.me/QuizSet_bot
  • 问题询问“有没有办法做 X?” /“我可以做 X 吗?” /“有可能做X吗?”很少适用于 Stack Exchange 格式。答案通常是“是”,但有时是“否”。无论哪种方式,这个问题通常都不是很有效。此外,通常的意思是“我该怎么做 X?”,对于 Stack Overflow 来说,这通常但并不总是过于宽泛。请edit你的问题澄清你想要什么。现在,这是一个“是”/“否”的问题。请看:Why is “Is it possible to…” a poorly worded question?

标签: telegram telegram-bot python-telegram-bot


【解决方案1】:

Telegram 支持创建和处理单个问题,但围绕问题实现逻辑是开发人员的责任:

  • 计算 X 个问题的分数
  • 增加问题后的复杂性
  • 终止投票(在 X 个问题之后)。

您需要实现一个跟踪每个用户的后端(想象一个带有问题和分数的地图映射用户 ID)才能运行您的工作流程,让我们看一个示例。

命令/start 将启动投票:在后端CommandHandler 会将用户ID 存储在地图中并发送第一个问题。

用户回复后PollHandler将记录答案(即第1题,正确,10分)并发出下一个问题。

PollHandler会再次记录答案(即第2题,正确,20分),以此类推。

在某个时间点(即 5 个问题后),您决定投票已完成:Bot 将发出最后一条消息(您的分数是 30,您想再玩一次吗?)。

一些注意事项:

  • 这种方法适用于没有复杂对话流程的简单轮询(在这种情况下,您需要考虑一些框架来支持复杂的工作流程)
  • 我已使用上述方法实现了我的 World Capitals 聊天机器人,我更喜欢使用预定义选项作为答案(简化对话流程)。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-16
  • 2018-09-15
  • 1970-01-01
  • 2015-09-11
  • 2022-10-09
  • 2018-02-26
相关资源
最近更新 更多