# 钉钉企业应用内通知推送 **Repository Path**: cnsashimi/DingTalkPush ## Basic Information - **Project Name**: 钉钉企业应用内通知推送 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-11-05 - **Last Updated**: 2026-11-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # OAMessage 2026-11-05: 当前暂只提供 linux X64可执行文件 ## 快速开始 1. 修改 `config.ini`,填入钉钉应用的 `app_key`、`app_secret`、`agent_id`,以及 Redis 连接信息。 在 [钉钉开发者后台](https://open-dev.dingtalk.com/) 创建企业内部应用后获取。 2. 启动 Redis(默认 127.0.0.1:6379,无密码)。 3. 启动服务: ```bash ./run.sh ``` 接口说明 ### 健康检查 ```bash GET /health ``` ### 发送工作通知 ```bash POST /api/notify Content-Type: application/json ``` 请求体(`userid_list` / `dept_id_list` / `to_all_user` 至少填一个) UserID从何而来:员工的UserId是由企业通讯录管理员查看的,员工自己无法直接查看。管理员可以登录企业管理后台(oa.dingtalk.com),然后依次点击左侧的【通讯录】-【成员管理】-【找到该员工】-【点击该员工】来查看员工的UserId。 ```json { "userid_list": "zhangsan,lisi", "dept_id_list": "", "to_all_user": false, "msg": { "msgtype": "text", "text": { "content": "这是一条工作通知" } } } ``` 不同消息类型示例: ```jsonc // markdown { "userid_list": "zhangsan", "msg": { "msgtype": "markdown", "markdown": { "title": "通知", "text": "## 标题\n正文内容" } } } // link { "userid_list": "zhangsan", "msg": { "msgtype": "link", "link": { "messageUrl": "https://example.com", "picUrl": "https://example.com/icon.png", "title": "链接标题", "text": "链接描述" } } } // action_card(单按钮) { "userid_list": "zhangsan", "msg": { "msgtype": "action_card", "action_card": { "title": "卡片标题", "markdown": "卡片 **正文**", "singleTitle": "查看详情", "singleURL": "https://example.com" } } } ``` 成功响应: ```json { "errcode": 0, "errmsg": "ok", "task_id": 123456 } ``` ### 发送工作通知(GET 快捷方式) 通过 URL query 参数直接发送 **文本** 工作通知,适合简单场景或浏览器/脚本调用。 ```bash GET /api/getnotify?userid_list=zhangsan,lisi&content=这是一条工作通知 ``` 参数说明: | 参数 | 必填 | 说明 | | ------------- | ---- |---------------------------------------------------------------------------------------------------------------------------------------------| | `userid_list` | 是 | 接收人用户 ID,多个用英文逗号分隔| | `content` | 是 | 文本内容 | 示例: ```bash curl "http://localhost:8080/api/getnotify?userid_list=zhangsan&content=这是一条工作通知" ``` 成功响应(与 POST 一致): ```json { "errcode": 0, "errmsg": "ok", "task_id": 123456 } ``` > 该接口仅支持 `text` 类型;如需 `markdown`/`link`/`action_card` 等 richer 消息,请使用 `POST /api/notify`。 ### 启用鉴权 在 `config.ini` 中设置 `server.api_key`,调用时需携带请求头: ```bash curl -H "X-API-Key: your-key" -X POST http://localhost:8080/api/notify ... ```