npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

node-red-contrib-feishu

v1.0.0

Published

Node-RED节点用于发送飞书消息

Readme

Node-RED 消息通知节点集合

这是一个Node-RED节点集合,提供多种消息通知方式,包括飞书、钉钉、企业微信、阿里云短信、腾讯云短信和电子邮件等。通过这些节点,您可以轻松地在Node-RED流程中发送各类消息通知。

项目背景

在现代企业环境中,消息通知是业务流程自动化的重要组成部分。然而,不同的团队和场景可能使用不同的通讯工具,导致系统集成时面临以下挑战:

  • 多平台碎片化:企业内部同时使用多种通讯工具(飞书、钉钉、企业微信等)
  • 开发成本高:为每个平台单独开发和维护集成代码耗时费力
  • 使用门槛高:需要了解各平台API的开发人员才能实现消息推送
  • 缺乏统一管理:难以集中配置和管理各类消息通知

本项目旨在解决这些问题,为Node-RED用户提供一站式的消息通知解决方案。

设计思路

模块化设计

项目采用高度模块化的设计理念,每个通知渠道(飞书、钉钉、企业微信、短信等)都是独立的节点,具有以下特点:

  • 统一接口:所有节点遵循相似的配置和使用方式,降低学习成本
  • 松耦合架构:各节点之间相互独立,可以单独安装和使用
  • 可扩展性:便于添加新的通知渠道和功能

配置灵活性

为了适应不同的使用场景,每个节点都支持两种配置方式:

  1. 静态配置:通过Node-RED界面配置面板设置参数
  2. 动态配置:通过消息属性在运行时动态覆盖配置

这种设计使得用户可以根据需要灵活选择配置方式,既可以简单固定使用,也可以实现复杂的动态场景。

错误处理

所有节点都实现了完善的错误处理机制:

  • 参数验证:检查必要参数是否提供
  • 异常捕获:捕获并处理API调用过程中的异常
  • 状态反馈:通过节点状态和调试输出提供清晰的错误信息

项目结构

├── feishu.js          # 飞书消息节点实现
├── feishu.html        # 飞书节点配置界面
├── dingtalk.js        # 钉钉消息节点实现
├── dingtalk.html      # 钉钉节点配置界面
├── wecom.js           # 企业微信群机器人节点实现
├── wecom.html         # 企业微信群机器人节点配置界面
├── wecom-app.js       # 企业微信应用消息节点实现
├── wecom-app.html     # 企业微信应用消息节点配置界面
├── aliyun-sms.js      # 阿里云短信节点实现
├── aliyun-sms.html    # 阿里云短信节点配置界面
├── tencent-sms.js     # 腾讯云短信节点实现
├── tencent-sms.html   # 腾讯云短信节点配置界面
├── email.js           # 电子邮件节点实现
├── email.html         # 电子邮件节点配置界面
└── package.json       # 项目配置和依赖管理

每个功能模块通常包含两个文件:

  • .js文件:包含节点的业务逻辑实现
  • .html文件:定义节点在Node-RED编辑器中的配置界面和帮助信息

功能特点

  • 多平台支持:支持飞书、钉钉、企业微信等主流企业通讯工具
  • 短信服务:集成阿里云短信和腾讯云短信服务
  • 邮件发送:支持HTML和纯文本格式的电子邮件发送
  • 灵活配置:所有节点均支持通过配置面板或消息属性动态设置参数
  • 丰富的消息格式:支持文本、Markdown、富文本等多种消息格式
  • 统一错误处理:所有节点采用一致的错误处理机制,提供清晰的状态反馈
  • 低代码实现:无需编写代码,通过拖拽和配置即可实现复杂的消息通知流程
  • 可视化管理:在Node-RED流程中直观地管理和监控消息发送状态

安装

在Node-RED环境中,通过以下命令安装:

npm install node-red-contrib-feishu

或者在Node-RED界面中,通过「管理面板」→「安装」搜索并安装 node-red-contrib-feishu

节点说明

飞书消息节点

用于向飞书机器人发送消息通知。

配置

  • 名称:节点显示名称(可选)
  • Webhook URL:飞书机器人的Webhook地址(必填)
  • 消息类型:支持text(纯文本)和rich_text(富文本)

输入

  • msg.payload:消息内容
  • msg.title:消息标题(仅富文本消息有效)
  • msg.webhookUrl:可动态覆盖配置的Webhook URL
  • msg.messageType:可动态覆盖配置的消息类型

示例

// 发送纯文本消息
msg.payload = "这是一条测试消息";
return msg;

// 发送富文本消息
msg.messageType = "rich_text";
msg.title = "通知标题";
msg.payload = "这是一条**富文本**消息";
return msg;

钉钉消息节点

用于向钉钉机器人发送消息通知。

配置

  • 名称:节点显示名称(可选)
  • Access Token:钉钉机器人的访问令牌(必填)
  • 加签密钥:钉钉机器人的安全设置密钥(可选)
  • 消息类型:支持text(纯文本)和markdown(Markdown格式)

输入

  • msg.payload:消息内容
  • msg.title:Markdown消息的标题
  • msg.accessToken:可动态覆盖配置的Access Token
  • msg.secret:可动态覆盖配置的加签密钥
  • msg.messageType:可动态覆盖配置的消息类型

企业微信消息节点

用于向企业微信机器人发送消息通知。

配置

  • 名称:节点显示名称(可选)
  • Webhook URL:企业微信机器人的Webhook地址(必填)
  • 消息类型:支持text(纯文本)和markdown(Markdown格式)

输入

  • msg.payload:消息内容
  • msg.webhookUrl:可动态覆盖配置的Webhook URL
  • msg.messageType:可动态覆盖配置的消息类型

阿里云短信节点

用于通过阿里云短信服务发送短信。

配置

  • 阿里云配置:选择或创建阿里云SMS配置节点
  • 签名名称:短信签名名称
  • 模板代码:短信模板ID

阿里云SMS配置节点

  • AccessKey ID:阿里云访问密钥ID
  • AccessKey Secret:阿里云访问密钥密码
  • 接入点:阿里云SMS服务接入点,默认为dysmsapi.aliyuncs.com

输入

  • msg.phoneNumber:接收短信的手机号码,可以是单个号码或号码数组
  • msg.templateParam:模板参数,JSON对象或字符串
  • msg.smsUpExtendCode:上行短信扩展码(可选)
  • msg.outId:外部流水扩展字段(可选)

示例

// 发送阿里云短信
msg.phoneNumber = "13800138000";
msg.templateParam = {code: "123456", product: "测试产品"};
return msg;

腾讯云短信节点

用于通过腾讯云短信服务发送短信。

配置

  • 名称:节点显示名称(可选)
  • Secret ID:腾讯云访问密钥ID
  • Secret Key:腾讯云访问密钥密码
  • 地区:腾讯云区域,默认为ap-guangzhou
  • 应用ID:短信应用ID
  • 签名:短信签名
  • 模板ID:默认短信模板ID

输入

  • msg.phoneNumber:接收短信的手机号码,可以是单个号码或号码数组
  • msg.templateParams:模板参数,数组或对象
  • msg.templateId:可动态覆盖配置的模板ID
  • msg.sessionContext:用户自定义的上下文信息(可选)

示例

// 发送腾讯云短信
msg.phoneNumber = "13800138000";
msg.templateParams = ["123456", "5"];
return msg;

电子邮件节点

用于发送电子邮件。

配置

  • 名称:节点显示名称(可选)
  • 邮件配置:选择或创建邮件配置节点
  • 收件人:默认收件人邮箱地址
  • 主题:默认邮件主题
  • 消息类型:支持text(纯文本)和html(HTML格式)

邮件配置节点

  • SMTP服务器:邮件服务器地址
  • 端口:SMTP服务器端口
  • 安全连接:是否使用SSL/TLS
  • 用户名:SMTP服务器用户名
  • 密码:SMTP服务器密码

输入

  • msg.payload:邮件内容
  • msg.to:可动态覆盖配置的收件人
  • msg.subject:可动态覆盖配置的邮件主题
  • msg.messageType:可动态覆盖配置的消息类型

注意事项

  1. 所有节点在发送失败时会将错误信息输出到Node-RED的调试面板
  2. 短信服务需要在相应的云服务平台开通并配置模板
  3. 企业通讯工具的机器人需要在各平台管理界面创建并获取Webhook地址
  4. 邮件服务可能需要在邮箱设置中开启SMTP服务并获取授权码

未来展望

本项目将持续发展和完善,未来计划包括:

功能扩展

  • 更多通知渠道:计划支持Slack、Microsoft Teams、Telegram等国际化平台
  • 消息模板系统:提供可视化的消息模板编辑和管理功能
  • 定时发送:支持预设时间发送消息,实现定时通知
  • 消息队列集成:与主流消息队列系统(如RabbitMQ、Kafka)集成,提高消息处理可靠性
  • 消息历史记录:保存和查询历史消息记录,便于追踪和审计

技术优化

  • 性能优化:提高大批量消息处理能力
  • 安全增强:增加消息加密和权限控制功能
  • 国际化支持:完善多语言支持,适应国际化团队需求
  • 更智能的错误处理:提供自动重试和故障转移机制

生态建设

  • 社区贡献:鼓励社区参与,共同完善和扩展功能
  • 插件系统:设计插件架构,使第三方开发者可以轻松扩展新的通知渠道
  • 集成案例:提供更多实际应用场景的集成案例和最佳实践
  • 文档完善:持续改进文档和教程,降低使用门槛

通过以上计划,我们希望将这个项目发展成为Node-RED生态系统中最全面、最易用的消息通知解决方案,满足从个人开发者到大型企业的各类通知需求。

许可证

MIT