新人看:n8n从入门到一个极简示例落地

667 阅读4分钟

从「下载安装n8n」到「实现每日发送飞书日报」完整教程

本文包含n8n环境准备、飞书配置、工作流搭建的全流程步骤,旨在帮助你快速实现招聘RSS信息的每日自动推送。

一、下载与安装n8n

n8n支持多种安装方式,可根据操作系统和技术背景选择适配方案:

方式1:Docker安装(推荐新手,跨平台通用)

Docker无需配置依赖环境,适配Windows、Mac、Linux系统,是最简单的安装方式。

前置条件
  • 已安装Docker Desktop(下载地址
    • Windows用户:安装后需启用「WSL 2」(安装向导会提示操作步骤)
    • Mac用户:直接安装并启动,状态栏会显示鲸鱼图标
安装步骤
  1. 启动Docker Desktop,确保状态栏显示「Docker Desktop running」;
  2. 打开终端(Windows用PowerShell或CMD,Mac/Linux用Terminal);
  3. 运行以下命令启动n8n:
    docker run -it --rm \
      -p 5678:5678 \
      -v ~/.n8n:/home/node/.n8n \
      n8nio/n8n
    
    • 参数说明:
      • -p 5678:5678:映射n8n端口到本地,用于访问网页界面;
      • -v ~/.n8n:/home/node/.n8n:本地保存工作流数据,避免容器删除后数据丢失;
      • n8nio/n8n:n8n官方镜像名称。
  4. 等待下载完成,终端显示「n8n ready on http://0.0.0.0:5678」即启动成功。

方式2:npm安装(需Node.js环境,适合开发者)

已安装Node.js的用户可直接通过npm命令安装。

前置条件
  • 安装Node.js(版本≥18.10,下载地址);
  • 验证安装:终端运行 node -vnpm -v,显示版本号即为成功。
安装步骤
  1. 打开终端,运行全局安装命令:
    npm install n8n -g
    
  2. 安装完成后启动n8n:
    n8n start
    
  3. 终端显示「n8n ready on http://localhost:5678」即启动成功。

方式3:桌面版安装(纯图形界面,适合非技术用户)

无需命令行操作,直接通过安装包启动。

  1. 访问n8n桌面版下载页:n8n Desktop
  2. 选择对应系统安装包(Windows选.exe,Mac选.dmg,Linux选.AppImage);
  3. 安装完成后,在桌面或应用列表中双击「n8n」启动;
  4. 首次启动需允许「n8n to access the network」,随后会自动打开网页界面。

二、验证n8n安装成功

无论采用哪种安装方式,启动后在浏览器访问 http://localhost:5678,若看到以下界面则说明安装成功:

  • 左侧:节点库(包含触发器和操作节点);
  • 中间:空白工作流画布(用于搭建流程);
  • 顶部:保存、运行、设置等功能按钮。

三、飞书机器人配置(获取消息发送凭证)

  1. 进入目标群组:打开飞书客户端,进入需发送日报的群组(如「招聘信息群」);
  2. 创建自定义机器人
    • 点击群组右上角「...」→「设置」→「智能机器人」→「添加机器人」→「自定义机器人」;
    • 名称填写「招聘RSS日报」,点击「添加」;
    • 复制生成的「Webhook地址」(格式:https://open.feishu.cn/open-apis/bot/v2/hook/xxx),保存备用。

四、搭建完整工作流(获取RSS+发送飞书)

目标:每日18:00自动抓取 mp.jobleap4u.com/rss 的最新5条招聘信息,整理后推送至飞书群组。

步骤1:新建工作流

在n8n界面点击顶部「+ New Workflow」,创建空白工作流。

步骤2:添加定时触发节点(Cron)

用于设定每日执行时间:

  1. 左侧节点面板搜索「Cron」,拖拽到画布;
  2. 右侧配置:
    • Mode:选择「Custom」;
    • Custom Expression:输入 0 18 * * *(代表每天18:00触发);
    • 点击「Save」。

步骤3:添加RSS内容获取节点(RSS Feed Read)

用于抓取招聘网站的RSS数据:

  1. 左侧搜索「RSS Feed Read」,拖拽到画布;
  2. 右侧配置:
    • URL:输入 https://mp.jobleap4u.com/rss
    • Maximum Items:输入 5(获取最新5条信息);
    • 点击「Save」;
    • 测试:点击节点右上角「Run node」,查看下方输出日志确认是否获取到数据。

步骤4:添加内容处理节点(Function)

将RSS结构化数据转换为飞书可读的文本格式:

  1. 左侧搜索「Function」,拖拽到画布;
  2. 右侧「Code」框输入以下代码:
    // 从RSS节点获取数据
    const rssItems = $node["RSS Feed Read"].json;
    
    // 初始化招聘信息文本
    let jobContent = "【今日最新招聘信息】\n";
    
    // 遍历每条信息并格式化
    rssItems.forEach((item, index) => {
      // 提取RSS字段(标题、链接、发布时间)
      const title = item.title || "无标题";
      const link = item.link || "无链接";
      const pubDate = item.pubDate ? new Date(item.pubDate).toLocaleString() : "未知时间";
      
      // 拼接成列表格式
      jobContent += `${index + 1}. ${title}\n发布时间:${pubDate}\n链接:${link}\n\n`;
    });
    
    // 输出处理后的内容
    return { jobContent: jobContent };
    
    • 代码说明:将RSS的标题、链接、发布时间转换为带序号的可读文本;
  3. 点击「Save」。

步骤5:添加飞书消息发送节点(HTTP Request)

将处理后的内容推送至飞书群组:

  1. 左侧搜索「HTTP Request」,拖拽到画布;
  2. 右侧配置:
    • Method:选择「POST」;
    • URL:粘贴飞书机器人的Webhook地址;
    • Headers:点击「Add Header」,添加 Content-Type: application/json
    • Body:选择「Raw」→ 格式「JSON」,输入:
      {
        "msg_type": "text",
        "content": {
          "text": "📢 每日招聘信息汇总\n\n{{ $node[\"Function\"].json[\"jobContent\"] }}\n\n订阅来源:mp.jobleap4u.com"
        }
      }
      
      • 关键:{{ $node[\"Function\"].json[\"jobContent\"] }} 用于引用处理后的招聘信息;
  3. 点击「Save」。

步骤6:连接节点流程

鼠标拖拽节点右侧圆点,按以下顺序连接:
Cron → RSS Feed Read → Function → HTTP Request

五、测试与启用工作流

步骤1:手动测试

  1. 点击顶部「Run Workflow」按钮,触发整个流程;
  2. 查看结果:
    • 成功:飞书群收到招聘信息消息;
    • 失败:点击顶部「Executions」,选择失败记录查看节点错误日志(如RSS地址无效、Webhook错误等)。

步骤2:启用自动运行

  1. 测试成功后,点击工作流顶部「Active」开关(变为绿色);
  2. 点击「Save」,命名为「每日招聘RSS飞书推送」。

六、常见问题排查

  1. RSS获取失败

    • 检查URL有效性:浏览器访问 https://mp.jobleap4u.com/rss,确认返回XML格式内容;
    • 排查网络问题:确认n8n所在环境可访问该网站(可添加「HTTP Request」节点测试连通性)。
  2. 飞书消息发送失败

    • 验证Webhook地址:重新在飞书机器人设置中获取地址;
    • 检查JSON格式:用JSON校验工具验证HTTP Request的Body格式;
    • 排查内容限制:飞书可能拦截含敏感词的消息,可简化内容测试。
  3. Function节点报错

    • 检查代码语法:如括号不匹配、变量名错误;
    • 匹配RSS字段:在「RSS Feed Read」节点输出日志中查看实际字段名,修改代码对应变量。

七、进阶优化

  1. 添加错误提醒:加入「IF」节点,若RSS获取失败则发送提示消息到飞书;
  2. 美化消息格式:改用飞书卡片消息(修改HTTP Request的Body为interactive类型),示例:
    {
      "msg_type": "interactive",
      "card": {
        "config": { "wide_screen_mode": true },
        "elements": [
          { "tag": "div", "text": { "content": "{{ $node[\"Function\"].json[\"jobContent\"] }}", "tag": "lark_md" } }
        ]
      }
    }
    
  3. 增加过滤功能:在Function节点中添加关键词过滤(如仅保留「技术岗」相关信息)。

通过以上步骤,可实现从RSS抓取到飞书推送的全流程自动化,无需手动整理招聘信息,系统将每日按时推送最新内容,适配HR团队或求职者使用。