Skip to content

企业微信 AI 机器人

基于企业微信自建应用搭建的 AI 机器人,经历两次架构迭代,当前为 NestJS 全栈版本。

项目迭代

版本架构状态
v1Cloudflare Workers + Node.js (原生)已弃用
v2NestJS + TypeScript + better-sqlite3 + Vben Admin🟢 当前版本

v2 在 v1 基础上进行了全面重构,从原生 Node.js 脚本迁移到企业级 NestJS 框架,并配备了现代化的管理后台。

v2 架构

企业微信 ←→ Nginx (HTTPS) ←→ NestJS (PM2) ←→ SQLite

                           @nestjs/schedule
                           定时任务 (09:00)

技术栈

层级技术说明
后端框架NestJS + TypeScript模块化架构,依赖注入
数据库better-sqlite3轻量级本地数据库,零配置
认证JWT (jsonwebtoken + bcryptjs)管理后台登录认证
定时任务@nestjs/schedule每日 09:00 自动推送
前端框架Vben Admin 5.x企业级中后台管理界面
前端技术Vue 3 + Vite 5 + Element Plus + Pinia现代化前端技术栈
部署PM2 + Nginx + Certbot SSL阿里云服务器生产部署

功能

  • 📤 定时推送: 每天 09:00 自动推送新闻/资讯消息卡片
  • 🔘 按钮交互: template_card 交互按钮(点赞/踩/刷新),用户点击回调处理
  • 📊 反馈统计: 记录用户互动数据,支持查询统计
  • 🖥 管理后台: Vben Admin 可视化后台,管理消息推送和查看数据
  • 📈 服务器监控: 前端实时展示 CPU、内存、进程等运行信息
  • 🔐 安全验证: 企业微信标准 SHA1 + AES-256-CBC 回调签名验证
  • 🔑 JWT 认证: 管理后台登录认证与权限控制

API 路由

方法路径说明
GET POST/callback企业微信回调(URL验证 + 事件接收)
POST/push手动触发推送
GET/stats查看反馈统计
POST/test发送测试消息
GET/api/server-info服务器运行信息
GET/健康检查

项目结构 (v2)

qywx/
├── backend/                   # NestJS 后端
│   ├── src/
│   │   ├── main.ts            # 应用入口
│   │   ├── app.module.ts      # 根模块
│   │   ├── wecom/             # 企业微信回调模块
│   │   ├── push/              # 消息推送模块
│   │   ├── auth/              # JWT 认证模块
│   │   ├── task/              # 定时任务模块
│   │   └── common/            # 公共工具
│   ├── ecosystem.config.js    # PM2 配置
│   └── package.json
├── frontend/                  # Vben Admin 前端
│   └── ...
└── deploy/                    # 部署脚本

部署

服务器

阿里云 47.105.83.78,Nginx 反代到 localhost:3000,HTTPS 通过 Certbot 自动续期。

部署流程

本地开发 → git push → SSH aliyun → cd /opt/qywx
  → git pull → npm install → npm run build
  → pm2 restart qywx-api

企业微信配置

进入企业微信后台 → 应用管理 → 自建应用 → 接收消息:

  • URL: https://qywx.zhuonian.xyz/callback
  • Token / EncodingAESKey 与后端 .env 一致

企业微信配置项

变量说明
WECOM_CORP_ID企业 ID(ww 开头)
WECOM_CORP_SECRET应用 Secret
WECOM_AGENT_ID应用 AgentID
WECOM_TOKEN回调验证 Token
WECOM_ENCODING_AES_KEY回调加密密钥(43 位)

相关链接