n8n 学习管理系统集成:3 个任务搭出每周课程提醒工作流
2026/9/20 22:11:48 网站建设 项目流程

n8n 学习管理系统集成:3 个任务搭出每周课程提醒工作流

【免费下载链接】n8nFair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.项目地址: https://gitcode.com/GitHub_Trending/n8/n8n

n8n 是一个 fair-code(公平代码)许可的工作流自动化平台,把 400 多个现成集成节点和自定义代码放在同一个可视化画布上,支持自托管或云服务。本文围绕n8n 学习管理系统集成这个主题,带你用 3 个独立小任务搭出一条自动工作流:每周一上午 9 点,从 LMS(学习管理系统)API 拉取本周课程数据,整理成课程与作业提醒,自动推送到班级 Slack 频道。每个任务都可以单独完成,你已经会哪部分,就可以直接跳过。

搭建前的准备

开始之前,先备齐 3 样东西:

  1. 一个可用的 n8n 实例

    • 不想折腾:注册 n8n 云服务账号,浏览器直接进编辑器;

    • 想数据留在自己手里:用 Docker 本地自托管。仓库里的docker/images/n8n/目录提供现成的镜像与启动脚本,一条命令即可:

      # 用 Docker 启动 n8n,然后浏览器打开 http://localhost:5678 docker compose up -d
  2. LMS 的 API 凭据

    • 向学习管理系统管理员索取:API 基础地址(形如https://lms.yourschool.edu/api)和一个 API Key。
    • 拿不到 Key 也没关系,可以先拿任何公开的 JSON 接口练手,流程完全一样。
  3. Slack 机器人令牌

    • 在 Slack 管理后台创建一个自定义应用(Custom App);
    • 开启"发送消息"(Chat)权限;
    • 把应用拉进课程群,拿到以xoxb-开头的 Bot Token。

💡 三个凭据在 n8n 里统一放在"凭据"面板里管理,后面的任务会用到。

任务一:配置定时触发,让工作流每周一自动运行

要做什么:让整条流程每周一上午 9:00 自动跑一次,不需要人点。

怎么做

  1. 新建工作流,点击画布上的+添加第一个节点。
  2. 在节点搜索框里输入Cron,选中Cron定时触发器。搜索框支持按名称直接筛选,找不到节点时先看一眼这里:
  3. 展开参数,把触发时间设置为:小时9、分0、星期Monday
  4. 保存。

做完看到什么效果:选中 Cron 节点后,面板会显示"下次运行时间",应该指向最近的周一上午 9 点。工作流本身还不会发送任何东西——它现在只是在等那个时间点。

任务二:用 HTTP Request 节点从 LMS 拉取课程数据

要做什么:在触发之后,调用学习管理系统的接口,把本周课程列表取回来。

怎么做

  1. 点 Cron 节点的输出端口,添加一个HTTP Request节点。
  2. 请求方法选GET,URL 填入课程接口地址,例如:{你的API基础地址}/courses
  3. 配置认证:根据 LMS 的鉴权方式选择对应的凭据类型(自定义 Header、Query 参数或 OAuth 等)。首次使用时 n8n 会打开一个凭据创建面板,按界面逐项填入 API 地址、账号和 Key,保存后即可在所有节点复用:
  4. 响应格式保持默认 JSON。

做完看到什么效果:手动点一次运行后,HTTP Request 节点上会显示"收到 N 条数据",点开输出面板能看到课程数组,每条记录大致包含课程名、开始日期、作业截止时间等字段。只要数据能取回来,这个任务就通过了。

任务三:格式化消息,用 Slack 节点推送到课程群

要做什么:把上一节点的 JSON 数据整理成人能读的一句话,发到课程 Slack 频道。

怎么做

  1. 在 HTTP Request 后面接一个Code节点,把课程数据拼成消息文本。下面这段短脚本的作用,就是把本周课程逐条转成"课程名 + 截止日期"的行:

    const courses = $input.first().json.courses; const lines = courses.map(c => `《${c.name}》开始 ${c.startDate},作业截止 ${c.homeworkDeadline}`); return [{ json: { text: `📚 本周课程更新\n${lines.join('\n')}` } }];
  2. 再添加一个Slack节点,接在 Code 节点后面。节点的参数都通过下拉框选择,例如 Resource 选Message、Operation 选Send

  3. 在 Slack 节点里选刚才创建的凭据,Channel 填入课程群 ID(或群名),Text 字段用表达式引用上一步的结果:{{ $json.text }}

  4. 保存。

做完看到什么效果:运行一次工作流,课程 Slack 群会收到一条消息,列出本周每门课程的开始时间和作业截止时间。这就是整条 n8n 学习管理系统集成流程的终点。

联调与验证

按顺序确认 4 点,流程就跑通了:

  1. 点画布下方橙色的Execute Workflow按钮,触发一次完整运行。
  2. 逐个点击每个节点,检查输入输出:Cron 有触发记录 → HTTP Request 拿到课程数组 → Code 输出的text排版正常。
  3. 到 Slack 课程群确认消息真的送达,格式符合预期。
  4. 全部通过后,把右上角的Inactive开关切到激活状态。此后每周一上午 9 点工作流自动执行,随时可以切到 "Executions" 页签查看历史运行记录。

两个最常见的小问题:

  • Slack 收不到消息:检查 Bot Token 是否开了发送消息权限、应用是否已加入该频道。
  • HTTP Request 返回 401:API Key 填错或已过期,回 LMS 后台重新生成。

延伸应用

流程跑通后,可以继续尝试这几件事:

  1. 减少打扰:在数据处理后加一个IF节点,本周没有作业时改发"本周无作业",或者干脆不发。
  2. 多一个渠道:复制消息分支,再接一个Email节点,把同一份提醒抄送到学生邮箱。
  3. 数据回流:用 HTTP Request 发PUT请求,把批改后的成绩写回学习管理系统,完成双向同步。

想深入某个节点的行为,可以阅读项目内对应源码:packages/nodes-base/nodes/HttpRequest/HttpRequest.node.tspackages/nodes-base/nodes/Slack/Slack.node.ts;仓库docker/images/n8n/下的 README 也说明了自托管镜像的构建细节,适合想自己打包部署的读者。

【免费下载链接】n8nFair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.项目地址: https://gitcode.com/GitHub_Trending/n8/n8n

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询