
## 概述
这个工作流实现了从Google Sheets自动向Telegram群组发布测验的功能。它能够按顺序将测验以投票形式发布到群组中,并在测验发送后自动更新表格中的状态以防止重复发布。如果没有待处理的测验可用,工作流会向单独的Telegram频道发送通知,提醒管理员补充表格内容。
## 目标受众
这个模板专为教师、社区管理者和Telegram群组管理员设计,他们希望以简单的方式运行测验、知识问答或知识检查,而无需手动发布。
## 解决的问题
手动发送测验是重复性工作且容易出错(比如重复发布相同的问题)。这个模板确保测验按顺序发送、跟踪并自动管理,最大限度地减少人工干预。
## 技术要求
– 已启用Google Sheets的活跃Google账户
– Telegram机器人令牌(通过BotFather获取)
– 测验群组和通知群组的聊天ID
## Google Sheets结构
创建包含以下列的表格:
quiz_number | question | option_a | option_b | option_c | option_d | status
status: 使用🟨表示待处理测验,✅表示已完成
## 设置说明
1. 将工作流复制到您的n8n实例中
2. 添加您的Google Sheets凭据
3. 将YOUR_SHEET_ID占位符替换为您的表格ID
4. 设置环境变量:
– TELEGRAM_BOT_TOKEN
– TELEGRAM_CHAT_ID(用于群组)
– TELEGRAM_NOTIFY_CHAT_ID(用于补充通知)
5. 运行工作流
## 自定义选项
– 如果不是使用”Sheet1″,请调整表格名称
– 将表情符号标记(🟨 / ✅)更改为您偏好的系统
– 修改Telegram通知消息
## 工作流节点详细说明
### 1. Read Quiz Data (Google Sheets)
从Google Sheets读取所有测验数据行,作为工作流的起始点。
### 2. Filter Pending Quiz (Code)
通过JavaScript代码筛选出状态为🟨的待处理测验,并按测验编号排序选择最早的测验。
### 3. Check Quiz Exists (If)
条件判断节点,检查是否存在真实的测验行。如果存在,发送投票;否则发送补充通知。
### 4. Send Telegram Poll (HTTP Request)
调用Telegram的sendPoll API,将测验作为投票发送到指定群组。
### 5. Prepare Status Update (Set)
准备状态更新数据,将测验状态设置为✅,并包含测验编号用于匹配。
### 6. Update Quiz Status1 (Google Sheets)
更新Google Sheets中匹配测验编号的行,将状态标记为已完成。
### 7. Notify Missing Quiz (Telegram)
如果没有待处理测验,向管理员频道发送通知消息。
## 工作流程逻辑
1. 从Google Sheets读取所有测验数据
2. 筛选出最早的待处理测验(状态为🟨)
3. 检查是否存在有效测验
4. 如果存在:
– 通过Telegram Bot API发送投票
– 更新表格状态为✅
5. 如果不存在:
– 向管理员频道发送补充通知
这个工作流确保了测验的有序发布和状态跟踪,大大提高了教育工作者和社区管理者的工作效率。

评论(0)