# Webhook钉钉关键词配置更新说明

## 📋 更新概述

本次更新为环境配置中的Webhook通知功能添加了钉钉自定义关键词配置和测试连通功能，使用户可以更方便地配置和测试钉钉机器人。

## ✨ 新增功能

### 1. 自定义关键词配置

在环境配置的"通知配置"标签页中，新增了"自定义关键词（钉钉安全验证）"输入框：

- **位置**: 环境配置 → 通知配置 → Webhook通知 → 自定义关键词
- **作用**: 用于钉钉机器人的自定义关键词安全验证
- **默认值**: `aiagents通知`
- **环境变量**: `WEBHOOK_KEYWORD`

#### 特性：
- ✅ 仅在启用Webhook且类型为"钉钉"时可编辑
- ✅ 飞书机器人时自动禁用（飞书不需要关键词）
- ✅ 系统会自动在消息标题和内容中包含该关键词
- ✅ 配置会保存到.env文件中

### 2. 测试连通功能

新增了"测试Webhook连通"按钮：

- **位置**: 环境配置 → 通知配置 → Webhook通知 → 测试Webhook连通按钮
- **功能**: 发送测试消息到配置的钉钉或飞书群
- **特点**: 
  - ✅ 使用当前填写的配置（无需先保存）
  - ✅ 实时反馈测试结果
  - ✅ 自动包含关键词验证
  - ✅ 不影响当前环境变量

## 📝 使用步骤

### 配置钉钉Webhook

1. **创建钉钉机器人**
   - 进入钉钉群 → 设置 → 智能群助手
   - 添加机器人 → 自定义
   - 复制Webhook地址

2. **配置安全设置**
   - 在钉钉机器人的安全设置中选择"自定义关键词"
   - 设置关键词（例如：`aiagents通知`）
   - 或选择其他安全方式（加签、IP白名单）

3. **在系统中配置**
   - 打开应用 → 点击左侧"环境配置"
   - 切换到"通知配置"标签页
   - 启用Webhook通知
   - 选择Webhook类型为"dingtalk"
   - 粘贴Webhook地址
   - 填写自定义关键词（与钉钉机器人设置的关键词一致）

4. **测试连接**
   - 点击"🧪 测试Webhook连通"按钮
   - 检查钉钉群是否收到测试消息
   - 测试成功后点击"💾 保存配置"

### 配置飞书Webhook

1. **创建飞书机器人**
   - 进入飞书群 → 设置 → 群机器人
   - 添加机器人 → 自定义机器人
   - 复制Webhook地址

2. **在系统中配置**
   - 打开应用 → 点击左侧"环境配置"
   - 切换到"通知配置"标签页
   - 启用Webhook通知
   - 选择Webhook类型为"feishu"
   - 粘贴Webhook地址
   - （飞书不需要填写关键词）

3. **测试连接**
   - 点击"🧪 测试Webhook连通"按钮
   - 检查飞书群是否收到测试消息
   - 测试成功后点击"💾 保存配置"

## 🔧 技术实现

### 修改的文件

1. **app.py**
   - 新增自定义关键词输入框
   - 新增测试Webhook连通按钮
   - 实现测试功能逻辑
   - 更新.env文件显示内容

2. **config_manager.py**
   - 已包含`WEBHOOK_KEYWORD`配置项
   - 更新`get_config_info()`方法，支持返回options字段
   - 写入.env文件时包含`WEBHOOK_KEYWORD`

3. **notification_service.py**
   - 已支持读取和使用`webhook_keyword`
   - `send_test_webhook()`方法已完整实现
   - 钉钉消息自动包含关键词

4. **.env.example**
   - 已包含`WEBHOOK_KEYWORD`配置说明
   - 提供详细的使用说明

### 环境变量配置

```bash
# Webhook自定义关键词（仅钉钉需要）
# 说明：
#   - 如果钉钉机器人设置了"自定义关键词"安全验证，请在此填写关键词
#   - 系统会自动在消息标题和内容中包含此关键词
#   - 如果不使用关键词验证，可以留空或使用其他安全方式
#   - 飞书机器人通常不需要关键词，可以留空
WEBHOOK_KEYWORD=aiagents通知
```

## 💡 使用建议

### 钉钉机器人安全设置建议

1. **自定义关键词**（推荐）
   - 优点：配置简单，使用方便
   - 适用：大部分场景
   - 设置：在钉钉机器人和系统中填写相同的关键词

2. **加签验证**
   - 优点：安全性更高
   - 适用：对安全要求较高的场景
   - 注意：需要在代码中实现加签逻辑

3. **IP白名单**
   - 优点：限制访问来源
   - 适用：服务器IP固定的场景
   - 注意：动态IP环境不适用

### 关键词设置建议

- ✅ 使用易识别的关键词（如：`aiagents通知`、`股票提醒`）
- ✅ 保持系统和钉钉机器人设置一致
- ✅ 不要使用过于常见的词语
- ✅ 建议包含中文，提高可读性

## 🎯 应用场景

配置好Webhook通知后，以下功能会自动使用：

1. **实时监测**
   - 股票价格触发提醒
   - 涨跌幅触发提醒
   - 成交量异常提醒

2. **智策定时分析**
   - 定时分析完成通知
   - 热门板块推荐
   - 策略建议提醒

3. **龙虎榜监测**
   - 重要龙虎榜数据提醒
   - 游资动向通知

## 📊 测试结果示例

### 成功示例

```
✅ 钉钉Webhook测试成功！请检查钉钉群消息。
```

在钉钉群中会收到：

```markdown
### aiagents通知 - 股票监测提醒

**股票代码**: 测试
**股票名称**: Webhook配置测试
**提醒类型**: 系统测试
**提醒内容**: 如果您收到此消息，说明Webhook配置正确！
**触发时间**: 刚刚

---
_此消息由AI股票分析系统自动发送_
```

### 失败示例

```
❌ 钉钉Webhook发送失败，请检查URL和网络连接
```

可能原因：
- URL配置错误
- 关键词不匹配
- 机器人被禁用
- 网络连接问题

## 🔍 故障排查

### 问题1：测试提示"关键词不匹配"

**解决方法**：
- 检查系统中填写的关键词与钉钉机器人设置是否一致
- 确保关键词没有多余空格
- 尝试在钉钉机器人中重新设置关键词

### 问题2：测试成功但实际使用时收不到消息

**解决方法**：
- 确认已点击"💾 保存配置"按钮
- 重启应用使配置生效
- 检查钉钉群是否开启了消息免打扰

### 问题3：飞书机器人无法收到消息

**解决方法**：
- 确认Webhook类型选择为"feishu"
- 检查Webhook URL是否正确
- 确认飞书机器人未被禁用

## 📚 相关文档

- [Webhook功能完成说明.md](./Webhook功能完成说明.md)
- [Webhook通知配置指南.md](./Webhook通知配置指南.md)
- [环境配置功能说明.md](./环境配置功能说明.md)

## 🎉 总结

本次更新完善了Webhook配置功能，让用户可以：

1. ✅ 直接在界面中配置钉钉自定义关键词
2. ✅ 在保存前测试Webhook连接
3. ✅ 获得实时的测试反馈
4. ✅ 更好地理解配置要求

配置过程更加直观和友好，大大提升了用户体验！

---

**更新时间**: 2025-10-18  
**版本**: v1.1.0

