Files
wxserver/部署检查清单.md
T
yuming 3965e542fc
部署到群晖 / deploy (push) Failing after 6m22s
接入自建后端 + Gitea CI/CD
- 新增 server/:Node + Express + SQLite + node-cron 实现登录、纪念日 CRUD 和定时订阅消息推送
- 新增 .gitea/workflows/deploy.yml:推送即触发群晖 Docker 部署,监听 15002
- utils/api.js:自动按 envVersion 切换本地/线上 BASE_URL
- app.js 与 add-anniversary.js 移除 wx.cloud 调用,改走自建后端
- cloudfunctions/ 暂保留以便回滚
- 一并提交此前未入库的首页 / 设置页 / 日历 / 万年历等改造

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-01 15:44:09 +08:00

309 lines
6.4 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.
# 生日提醒小程序 - 云开发部署检查清单
## ✅ 部署前检查
### 1. 环境准备
- [ ] 已注册微信小程序账号
- [ ] 已获取 AppID
- [ ] 已开通云开发(环境IDcloudbase-1gk3x0ia3a6b1f80
- [ ] 已创建订阅消息模板(模板ID6J7Stt-lu7DKU6jblJ0nZGq_D81z5glnksf7qWfy5Yw
### 2. 代码检查
- [ ] app.js 已初始化云开发
- [ ] app.js 中的环境ID正确
- [ ] add-anniversary.js 已添加订阅授权代码
- [ ] add-anniversary.js 中的模板ID正确
---
## 📤 上传云函数
### 1. login 云函数
```
□ 右键点击 cloudfunctions/login
□ 选择 "上传并部署:云端安装依赖"
□ 等待上传成功
□ 在云开发控制台确认已上传
```
### 2. syncAnniversary 云函数
```
□ 右键点击 cloudfunctions/syncAnniversary
□ 选择 "上传并部署:云端安装依赖"
□ 等待上传成功
□ 在云开发控制台确认已上传
```
### 3. sendReminder 云函数
```
□ 右键点击 cloudfunctions/sendReminder
□ 选择 "上传并部署:云端安装依赖"
□ 等待上传成功
□ 在云开发控制台确认已上传
□ 确认定时触发器已自动创建
```
**验证**
云开发控制台 → 云函数,应该看到3个云函数:
- ✅ login
- ✅ syncAnniversary
- ✅ sendReminder
---
## 🗄️ 创建数据库集合
### 1. anniversaries 集合
```
□ 进入云开发控制台 → 数据库
□ 点击"添加集合"
□ 集合名称:anniversaries
□ 权限设置:仅创建者可读写
□ 点击"确定"
```
### 2. remind_logs 集合
```
□ 点击"添加集合"
□ 集合名称:remind_logs
□ 权限设置:仅创建者可读写
□ 点击"确定"
```
**验证**
云开发控制台 → 数据库,应该看到2个集合:
- ✅ anniversaries
- ✅ remind_logs
---
## ⏰ 配置定时触发器
### 检查触发器
```
□ 进入云开发控制台 → 云函数 → sendReminder
□ 点击"触发器"标签
□ 确认存在 dailyReminder 触发器
□ 确认 Cron 表达式为:0 0 9 * * * *
```
### 如果没有触发器,手动创建
```
□ 点击"新建触发器"
□ 触发器名称:dailyReminder
□ 触发周期:自定义
□ Cron表达式:0 0 9 * * * *
□ 点击"确定"
```
---
## 🧪 功能测试
### 1. 测试 openid 获取
```
□ 打开小程序
□ 查看控制台日志
□ 应该看到:"获取openid成功: oABC..."
□ 打开"存储" → 查看 Storage
□ 应该看到 openid 已保存
```
### 2. 测试订阅消息授权
```
□ 在真机上打开小程序(必须真机)
□ 点击"添加纪念日"
□ 填写表单,开启"是否提醒"
□ 点击"保存"
□ 应该弹出订阅消息授权弹窗
□ 点击"允许"
□ 应该显示"添加成功"
```
### 3. 测试数据同步
```
□ 进入云开发控制台 → 数据库 → anniversaries
□ 应该看到刚才添加的纪念日记录
□ 记录中包含 _openid 字段
□ 数据完整无误
```
### 4. 测试云函数
```
□ 进入云开发控制台 → 云函数 → sendReminder
□ 点击"测试"
□ 输入参数:{}
□ 点击"运行测试"
□ 查看返回结果,应该包含:
{
"success": true,
"total": 数字,
"successCount": 数字,
"failCount": 数字
}
```
### 5. 测试订阅消息发送
**方法1:等待定时触发**
```
□ 添加一个明天的生日,提前1天提醒
□ 等到明天上午9:00
□ 应该收到订阅消息推送
```
**方法2:手动触发(推荐)**
```
□ 添加一个今天的生日
□ 手动执行 sendReminder 云函数
□ 应该立即收到订阅消息推送
```
**方法3:修改定时器(快速测试)**
```
□ 临时修改 Cron 为:0 */1 * * * * *
□ 等待1分钟
□ 应该收到订阅消息推送
□ 测试完成后改回:0 0 9 * * * *
```
---
## 🔍 验证清单
### 控制台日志验证
```
□ 看到:"云开发初始化成功"
□ 看到:"获取openid成功"
□ 看到:"订阅消息授权结果"
□ 看到:"云端同步成功"
```
### 数据库验证
```
□ anniversaries 集合有数据
□ 数据包含 _openid 字段
□ remindEnabled 为 true
□ personName 字段正确
```
### 提醒日志验证
```
□ remind_logs 集合有记录
□ status 为 "success"
□ sendDate 为今天
□ personName 正确
```
### 订阅消息验证
```
□ 收到了微信服务通知
□ 消息内容正确
□ 称呼、日期、提示都显示正确
□ 点击消息能跳转到小程序
```
---
## 🐛 故障排查
### 问题1:收不到订阅消息
**检查步骤**
```
□ 确认用户已授权订阅
□ 确认 openid 已保存
□ 查看 sendReminder 云函数日志
□ 查看 remind_logs 是否有 failed 记录
□ 确认模板ID正确
□ 确认云函数权限包含 subscribeMessage.send
```
### 问题2:云函数执行失败
**检查步骤**
```
□ 查看云函数日志,查找错误信息
□ 确认依赖已安装(查看 node_modules
□ 确认 config.json 配置正确
□ 尝试重新上传云函数
```
### 问题3:数据没有同步到云端
**检查步骤**
```
□ 确认 openid 已获取
□ 查看控制台是否有错误
□ 确认 syncAnniversary 云函数已上传
□ 手动测试 syncAnniversary 云函数
```
### 问题4:定时触发器不工作
**检查步骤**
```
□ 确认触发器已创建
□ 确认 Cron 表达式正确
□ 查看云函数日志,确认有定时调用记录
□ 尝试手动触发云函数验证功能
```
---
## 📊 性能监控
### 每日检查(可选)
```
□ 查看云函数调用次数
□ 查看订阅消息发送成功率
□ 查看 remind_logs 记录
□ 查看是否有异常日志
```
### 每周检查(可选)
```
□ 导出数据库备份
□ 清理过期的 remind_logs(可选)
□ 查看云开发资源使用情况
```
---
## ✅ 部署完成确认
全部完成以下项目即表示部署成功:
- [ ] 3个云函数全部上传成功
- [ ] 2个数据库集合创建成功
- [ ] 定时触发器配置成功
- [ ] 能够获取用户 openid
- [ ] 订阅消息授权正常弹出
- [ ] 数据能够同步到云端
- [ ] 手动执行云函数成功
- [ ] 能够收到订阅消息推送
- [ ] 提醒日志正常记录
---
## 🎉 恭喜部署成功!
你的生日提醒小程序现在具备:
- ✅ 云端数据存储
- ✅ 自动推送提醒
- ✅ 多设备同步
- ✅ 安全可靠
**开始使用吧!** 🎂
---
## 📞 需要帮助?
如果遇到问题:
1. 查看《云开发部署指南.md》
2. 查看《云开发功能说明.md》
3. 查看云开发控制台的错误日志
4. 联系技术支持