快速开始
本文将带你从零配置并启动服务,成功向钉钉群发出第一条消息。
📦 预编译安装包
暂未提供预编译安装包
目前请通过下方源码运行步骤部署使用,后续会发布桌面应用
环境要求
- Node.js
16及以上(建议18LTS 及以上) - Linux(systemd 部署)或 macOS(开发调试)
- 一个钉钉群自定义机器人的 Webhook 地址(及可选的加签密钥)
💡 如何拿到 Webhook?
在钉钉群「群设置 → 机器人 → 添加机器人 → 自定义」中创建机器人,
复制 Webhook 地址。若在「安全设置」里勾选了「加签」,需同时记录密钥
SEC 开头的那串字符,填入 DINGTALK_SECRET。
本地运行
1. 配置环境变量
复制示例配置并填写:
cp .env.example .env
vi .env
关键字段:
DINGTALK_WEBHOOK_URL="https://oapi.dingtalk.com/robot/send?access_token=xxx"
DINGTALK_SECRET="SECxxx" # 未配置加签则留空
DINGTALK_API_TOKEN="" # 可选,API 鉴权 token
PORT=3000 # 可选,默认 3000
也可以直接用环境变量临时启动,无需文件:
export DINGTALK_WEBHOOK_URL="https://oapi.dingtalk.com/robot/send?access_token=xxx"
export DINGTALK_SECRET="SECxxx"
2. 启动服务
npm start
看到如下日志即启动成功:
dingtalk-notice running on http://0.0.0.0:3000
⚠️ 注意
未配置 DINGTALK_WEBHOOK_URL 时服务会直接退出并报错。
启动前请先清理占用端口的残留进程:
lsof -ti:3000 | xargs kill。
发出第一条消息
服务运行后,向 /api/v1/push 发一条 POST 请求:
# text 消息
curl -X POST http://localhost:3000/api/v1/push \
-H "Content-Type: application/json" \
-d '{"msgtype":"text","content":"hello"}'
成功时响应:
{ "ok": true }
此时钉钉群应收到一条 hello 文本消息。如果失败,响应会透传钉钉的错误码,例如:
{ "ok": false, "errcode": 300005, "errmsg": "token is not exist" }
发一条 Markdown 消息
curl -X POST http://localhost:3000/api/v1/push \
-H "Content-Type: application/json" \
-d '{"msgtype":"markdown","title":"标题","content":"# hello\n**bold**"}'