Files
wecom-ai-assistant/docs/setup-steps.md
2026-02-05 16:36:32 +08:00

241 lines
6.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.
# 企业微信回调配置完整步骤
## 当前状态检查
✅ Docker 服务运行正常
✅ 后端服务正常http://localhost:8000
✅ .env 文件已配置企业微信参数
---
## 步骤 1安装 cloudflared
### 方法 A使用 MSI 安装包(推荐,最简单)
1. **下载安装包**
- 直接下载https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-windows-amd64.msi
- 或访问https://github.com/cloudflare/cloudflared/releases 选择最新版本
2. **安装**
- 双击下载的 `cloudflared-windows-amd64.msi` 文件
- 按照安装向导完成安装
- 安装完成后会自动添加到系统 PATH
3. **验证安装**
```powershell
cloudflared --version
```
应该显示版本号,例如:`cloudflared 2026.1.2`
### 方法 B使用 Scoop如果已安装
```powershell
scoop install cloudflared
```
---
## 步骤 2启动 Cloudflare Tunnel
### 2.1 启动 tunnel
在 PowerShell 中运行:
```powershell
cloudflared tunnel --url http://localhost:8000
```
### 2.2 复制公网 URL
启动后会显示类似这样的输出:
```
+--------------------------------------------------------------------------------------------+
| Your quick Tunnel has been created! Visit it at: |
| https://abc123-def456-ghi789.trycloudflare.com |
+--------------------------------------------------------------------------------------------+
```
**重要**:复制这个 URL例如`https://abc123-def456-ghi789.trycloudflare.com`
### 2.3 保持窗口运行
**重要**:不要关闭这个 PowerShell 窗口,保持 cloudflared 运行。
---
## 步骤 3配置企业微信后台
### 3.1 登录企业微信管理后台
访问https://work.weixin.qq.com
### 3.2 进入应用设置
1. 点击 **应用管理**
2. 选择 **自建应用**
3. 选择你的应用AgentId: 1000003
4. 找到 **接收消息** 或 **API接收**
5. 点击 **设置 API 接收** 或 **配置回调URL**
### 3.3 填写回调配置
根据你的 `.env` 文件,填写以下信息:
| 配置项 | 值 | 说明 |
|--------|-----|------|
| **接收消息服务器 URL** | `https://你的cloudflared域名.trycloudflare.com/api/wecom/callback` | 将 `你的cloudflared域名` 替换为步骤 2.2 中复制的域名 |
| **Token** | `tuqA13S8A9L2` | 与 `.env` 中的 `WECOM_TOKEN` 一致 |
| **EncodingAESKey** | `VjrVc9NuGr1pikvwKLjr2OpB6gh1wDlBaUMKeUHAlKw` | 与 `.env` 中的 `WECOM_ENCODING_AES_KEY` 一致 |
| **消息加解密方式** | **安全模式** | 推荐选择安全模式 |
**示例**
- 如果 cloudflared URL 是:`https://abc123-def456-ghi789.trycloudflare.com`
- 那么回调 URL 应该是:`https://abc123-def456-ghi789.trycloudflare.com/api/wecom/callback`
### 3.4 保存配置
点击 **保存** 按钮。
---
## 步骤 4验证配置
### 4.1 查看后端日志
在另一个 PowerShell 窗口中运行:
```powershell
docker compose logs backend -f
```
### 4.2 检查验证结果
保存配置后,企业微信会立即发送 GET 请求进行校验。
**成功标志**
- 后端日志中应该看到:
```
INFO: wecom verify success {"trace_id": "...", "echostr_length": 43}
```
- 企业微信后台应显示 **保存成功** ✅
**失败标志**
- 后端日志显示 `wecom verify failed`
- 企业微信后台显示"URL校验失败"
**如果失败,检查**
1. Token 是否与 `.env` 中的 `WECOM_TOKEN` 完全一致
2. EncodingAESKey 是否与 `.env` 中的 `WECOM_ENCODING_AES_KEY` 完全一致43位不含等号
3. 回调 URL 是否正确(包含 `/api/wecom/callback`
4. cloudflared 是否仍在运行
---
## 步骤 5测试消息回调
### 5.1 发送测试消息
1. 打开企业微信客户端
2. 找到你配置的应用
3. 发送一条文本消息,例如:`你好,测试一下`
### 5.2 查看后端日志
在后端日志中应该看到:
**收到消息**
```json
{
"level": "INFO",
"message": "wecom message received",
"trace_id": "...",
"external_userid": "wmxxxxx",
"msgid": "1234567890",
"msg_type": "text",
"content_summary": "你好,测试一下"
}
```
**发送回复**
```json
{
"level": "INFO",
"message": "wecom reply sent",
"trace_id": "...",
"external_userid": "wmxxxxx",
"msgid": "1234567890",
"reply_summary": "已收到:你好,测试一下"
}
```
### 5.3 验证回复
在企业微信客户端中,应该收到回复:**`已收到:你好,测试一下`**
### 5.4 检查数据库
```powershell
# 查看会话
docker compose exec db psql -U wecom -d wecom_ai -c "SELECT id, external_user_id, status, created_at FROM chat_sessions ORDER BY created_at DESC LIMIT 5;"
# 查看消息
docker compose exec db psql -U wecom -d wecom_ai -c "SELECT id, session_id, role, content, created_at FROM messages ORDER BY created_at DESC LIMIT 10;"
```
---
## 常见问题
### Q1: cloudflared 命令找不到?
**解决**
- 如果使用 MSI 安装,重启 PowerShell 窗口
- 或使用完整路径运行:`C:\Program Files\Cloudflare\cloudflared.exe tunnel --url http://localhost:8000`
### Q2: GET 校验失败?
**检查清单**
- [ ] Token 是否与 `.env` 中的 `WECOM_TOKEN` 完全一致(包括大小写、空格)
- [ ] EncodingAESKey 是否与 `.env` 中的 `WECOM_ENCODING_AES_KEY` 完全一致43位
- [ ] 回调 URL 是否正确(格式:`https://域名.trycloudflare.com/api/wecom/callback`
- [ ] cloudflared 是否仍在运行
- [ ] 后端服务是否正常运行
### Q3: 收到消息但没有回复?
**检查**
- 查看后端日志是否有错误
- 检查数据库连接是否正常
- 确认消息类型是否为文本消息
---
## 快速命令参考
```powershell
# 检查服务状态
docker compose ps
# 查看后端日志
docker compose logs backend -f
# 测试本地服务
curl http://localhost:8000/api/health
# 启动 cloudflared
cloudflared tunnel --url http://localhost:8000
# 检查数据库
docker compose exec db psql -U wecom -d wecom_ai -c "SELECT * FROM chat_sessions;"
```
---
## 下一步
完成配置后,可以:
1. 测试不同类型的消息(文本、图片等)
2. 查看管理后台的会话列表和消息记录
3. 继续开发阶段 5FAQ 匹配功能