Files
hoperun-custom-sign/DINGTALK_SETUP.md
2025-11-04 17:19:28 +08:00

110 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 钉钉通知集成说明
## 功能概述
本项目已成功集成钉钉机器人通知功能,与现有的 ServerChan3 通知系统并存,提供多渠道消息通知能力。
## 新增文件
### 1. 配置类
- `src/main/kotlin/com/pomelotea/hoperun/sign/config/DingTalkConfig.kt` - 钉钉配置类
### 2. 数据模型
- `src/main/kotlin/com/pomelotea/hoperun/sign/api/model/DingTalkNotifyRequest.kt` - 钉钉消息请求/响应模型
### 3. 通知助手
- `src/main/kotlin/com/pomelotea/hoperun/sign/notify/DingTalkNotifyHelper.kt` - 钉钉通知助手类
### 4. 统一通知服务
- `src/main/kotlin/com/pomelotea/hoperun/sign/service/NotificationService.kt` - 统一管理多种通知方式
## 配置说明
### application-dev.yml 配置
```yaml
dingtalk:
enabled: false # 是否启用钉钉通知
webhook: https://oapi.dingtalk.com/robot/send?access_token=YOUR_ACCESS_TOKEN
secret: YOUR_SECRET # 钉钉机器人密钥(可选)
```
### 获取钉钉机器人信息
1. 在钉钉群中添加"自定义机器人"
2. 安全设置选择"加签",获取密钥
3. 获取 Webhook 地址
4. 将配置信息填入 `application-dev.yml`
## API 接口
### 测试接口
- `GET /api/daka/test/dingtalk` - 测试钉钉通知
- `GET /api/daka/test/serverchan` - 测试ServerChan3通知
- `GET /api/daka/test/all` - 测试所有通知方式
### 使用示例
```bash
# 测试钉钉通知
curl http://localhost:8982/api/daka/test/dingtalk
# 测试ServerChan3通知
curl http://localhost:8982/api/daka/test/serverchan
# 测试所有通知
curl http://localhost:8982/api/daka/test/all
```
## 编程接口
### NotificationService 使用
```kotlin
@Autowired
private lateinit var notificationService: NotificationService
// 发送所有类型的通知
notificationService.sendAllNotifications("标题", "内容")
// 只发送钉钉通知
val response = notificationService.sendDingTalkNotification("标题", "内容")
// 只发送ServerChan3通知
val response = notificationService.sendServerChanNotification("标题", "内容")
// 发送钉钉文本消息
val response = notificationService.sendDingTalkText("纯文本消息")
// 发送钉钉Markdown消息
val response = notificationService.sendDingTalkMarkdown("标题", "**Markdown** 内容")
```
## 功能特性
### 消息类型支持
- **文本消息**: 简单文本内容
- **Markdown消息**: 支持丰富的格式化内容
### 安全特性
- 支持钉钉机器人加签验证
- 自动URL签名生成
- 错误处理和日志记录
### 智能切换
- 自动检测配置有效性
- 支持同时启用多种通知方式
- 配置错误时自动跳过对应通知
## 使用建议
1. **开发测试**: 先使用测试接口验证配置正确性
2. **生产部署**: 确保 `enabled: true` 并填入正确的 webhook 和 secret
3. **消息格式**: 建议使用 Markdown 格式,支持更丰富的展示效果
4. **监控日志**: 关注应用日志,及时发现通知发送问题
## 注意事项
1. 确保钉钉机器人在群中有发送消息权限
2. Webhook 地址不要泄露到公开仓库
3. 消息发送频率不要超过钉钉限制通常每分钟最多20条
4. 建议在生产环境中配置错误重试机制