一个基于 Python 的 Telegram 问卷调查机器人,支持管理员创建问卷、用户填写问卷、查看统计和导出结果。
- 创建任意数量的问卷调查
- 支持多选题和主观题
- 问卷状态管理(草稿、激活、关闭)
- 查看问卷统计数据
- 导出详细结果到 Excel
- 浏览可用问卷
- 逐步填写问卷
- 自动保存答案进度
- 直观的内联键盘操作
- 清晰的步骤指导
- 错误处理和验证
- 多语言支持(英文界面)
git clone <repository-url>
cd Telegram-Questionnaire-Bot
pip install -r requirements.txt
编辑 config.py
文件,填入你的配置信息:
class Config:
# Bot configuration
BOT_TOKEN = 'your_telegram_bot_token_here'
# Admin configuration (list of user IDs)
ADMIN_USER_IDS = [
123456789, # Replace with actual admin user IDs
987654321, # Add more admin IDs as needed
]
# Other settings remain as default
- 在 Telegram 中找到 @BotFather
- 发送
/newbot
创建新机器人 - 按照指示设置机器人名称和用户名
- 复制获得的 Token 到
config.py
文件中
- 在 Telegram 中找到 @userinfobot
- 发送任意消息获取你的用户 ID
- 将管理员的用户 ID 添加到
config.py
文件的ADMIN_USER_IDS
列表中
python bot.py
/create_questionnaire
- 输入问卷标题
- 输入问卷描述
- 添加问题:
- 多选题:
mc: 问题内容? 选项1, 选项2, 选项3
- 主观题:
text: 问题内容?
- 多选题:
- 输入
done
完成创建
/my_questionnaires
- 查看所有问卷
- 激活草稿状态的问卷
- 关闭活跃的问卷
- 查看问卷统计
/view_results
- 选择问卷查看统计数据
- 查看参与人数和完成情况
/export_results
- 选择问卷导出 Excel 文件
- 包含所有用户的详细回答
/surveys
- 点击"🚀 Start Survey"按钮
- 逐步回答问题
- 系统自动保存进度
/help
Telegram-Questionnaire-Bot/
├── bot.py # 主机器人逻辑
├── config.py # 配置管理 (需要编辑)
├── config.example.py # 配置示例
├── database.py # 数据库操作
├── models.py # 数据模型定义
├── utils.py # 工具函数
├── requirements.txt # 项目依赖
├── CONFIG_GUIDE.md # 详细配置指南
└── README.md # 项目说明
users
- 用户信息questionnaires
- 问卷信息questions
- 问题信息responses
- 用户回答questionnaire_responses
- 问卷完成状态
users 1:N questionnaires (创建关系)
questionnaires 1:N questions
questionnaires 1:N questionnaire_responses
questions 1:N responses
users 1:N responses
/start
- 开始使用机器人/help
- 显示帮助信息/surveys
- 查看可用问卷
/admin
- 管理员控制面板/create_questionnaire
- 创建新问卷/my_questionnaires
- 查看我的问卷/view_results
- 查看问卷结果/export_results
- 导出问卷数据
- 用户从预定义选项中选择
- 支持 2-10 个选项
- 用户回复选项编号
- 用户自由输入文本回答
- 支持多行文本
- 自动验证非空
- Python 3.7+
- python-telegram-bot 20.7 - Telegram Bot API
- SQLite - 数据存储
- pandas - 数据处理
- openpyxl - Excel 导出
python bot.py
使用 systemd 或 docker 部署:
# 使用 nohup 后台运行
nohup python bot.py &
# 或使用 systemd 服务
sudo systemctl start questionnaire-bot
本项目使用 MIT 许可证。
欢迎提交 Issue 和 Pull Request!
如果遇到问题,请:
- 检查
config.py
配置是否正确 - 确认 Bot Token 有效
- 验证管理员 ID 设置正确
- 查看日志输出排查错误
- 初始版本发布
- 支持问卷创建和管理
- 支持用户填写问卷
- 支持结果查看和导出