# ndog-wechat-framework
**Repository Path**: Jing_jun_yang/ndog-wechat-framework
## Basic Information
- **Project Name**: ndog-wechat-framework
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-12-07
- **Last Updated**: 2025-12-07
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
**奶狗微信框架,一个现代化、插件化的微信开发框架**
基于 [Go](https://go.dev/) + [Wails3](https://v3alpha.wails.io/) + [React](https://zh-hans.react.dev/) + [Ant Design](https://ant-design.antgroup.com/index-cn) + [千寻微信 DLL](https://www.cnblogs.com/daen/p/-/qxpro) 构建
[快速开始](#-快速开始) · [功能特性](#-功能特性) · [插件开发](#-插件开发) · [API 文档](#-api-文档)
---
## 📖 项目简介
奶狗微信框架是一个功能强大的微信开发框架,提供了完整的微信 API 代理、插件系统和现代化的用户界面。
特别说明:业余项目,写的急,肯定有BUG,有能力的自行二开或根据反馈随缘更新。
### 📸 界面预览
### ✨ 核心特性
- 🚀 **现代化技术栈**
- 后端:Go 1.24 + Wails3
- 前端:React 18 + Ant Design + TailwindCSS
- 🔌 **强大的插件系统**
- 支持热加载
- 独立窗口运行
- 事件实时广播
- .dog 格式插件包
- 📡 **完整的 API 支持**
- 47+ 微信 API 接口
- SSE 实时事件推送
- 🎨 **优雅的用户界面**
- 响应式设计
- 主题切换(亮色/暗色/跟随系统)
- 实时日志查看
---
## 🚀 快速开始
### 环境要求
- **Go**: 1.24.0 或更高版本
- **Node.js**: 18+
- **操作系统**: Windows
- **微信客户端**: 已安装
### 首次运行
1. 启动后会自动打开主窗口
2. 点击"微信管理"登录微信账号(支持多开)
3. 在"插件管理"中安装或开发插件
4. 在"日志面板"查看实时事件
### 视频教程
哔哩哔哩:https://www.bilibili.com/video/BV1ZDUUBpEmH/?share_source=copy_web&vd_source=bbb3a2eb78fba5d969268f84dc56ed8f
---
## 🎯 功能特性
### 1. 账号管理
- ✅ 多账号登录支持
- ✅ 账号状态实时监控
- ✅ 授权信息自动更新
- ✅ 心跳检测机制
### 2. 插件系统
```
plugins/
└── my-plugin/
├── plugin.json # 插件配置
├── icon.png # 插件图标
└── frontend/ # 前端资源
└── index.html # 入口页面
```
**插件特性**:
- 热加载/热重载
- 独立窗口运行
- 事件广播机制
- 文件上传支持
### 3. 事件系统
支持的事件类型:
- `loginSuccess` - 登录成功
- `recvMsg` - 接收消息
- `friendReq` - 好友请求
- `groupMemberChanges` - 群成员变动
- `transPay` - 转账事件
- `authExpire` - 授权到期
### 4. API 代理
提供 **47+** 微信 API 接口:
| 类别 | 接口数量 | 说明 |
| -------- | -------- | ------------------------------ |
| 基础接口 | 7 | 版本、登录、二维码等 |
| 消息发送 | 13 | 文本、图片、文件、小程序等 |
| 信息获取 | 5 | 个人信息、好友列表、群聊列表等 |
| 好友管理 | 7 | 添加、删除、备注等 |
| 群聊管理 | 9 | 创建、添加成员、修改昵称等 |
| 其他接口 | 6 | 转账、浏览器、云函数等 |
---
## 🔌 插件开发
### 插件模板
- [万能自定义回复插件模板](https://pan.baidu.com/s/1XFtkhNMffJweCD0h6iBfCQ?pwd=vd61)
### 快速创建插件
#### 1. 创建插件目录结构
```
my-plugin/
├── plugin.json # 必需:插件元数据
├── icon.png # 可选:插件图标 (128x128)
└── frontend/ # 必需:前端资源
└── index.html # 必需:入口页面
```
#### 2. 编写 plugin.json
```json
{
"id": "my-plugin",
"name": "我的插件",
"version": "1.0.0",
"author": "你的名字",
"description": "插件描述",
"icon": "icon.png",
"entry": "frontend/index.html",
"type": "window"
}
```
#### 3. 创建入口页面
```html
我的插件
我的插件
```
#### 4. 打包插件
```bash
# 将插件文件夹压缩为 .dog 格式(实际上是ZIP)
zip -r my-plugin.dog my-plugin/
# 或使用 PowerShell
Compress-Archive -Path my-plugin -DestinationPath my-plugin.dog
```
#### 5. 安装插件
1. 打开框架主窗口
2. 进入"插件管理"页面
3. 点击"上传插件"按钮
4. 选择 `.dog` 文件
5. 刷新插件列表
6. 点击"运行插件"
---
## 📡 API 文档
### 插件开发 API
#### 1. 获取配置文件
```http
GET /api/plugin/config
```
**响应示例**:
```json
{
"code": 200,
"data": "server:\n address: :9001\n..."
}
```
#### 2. 获取当前微信账号
```http
GET /api/plugin/wechat
```
**响应示例**:
```json
{
"code": 200,
"data": {
"list": [
{
"wxid": "wxid_xxx",
"nick": "昵称",
"port": 19088,
"pid": 12345,
"expireTime": "2024-12-31",
"isExpire": 0
}
]
}
}
```
#### 3. 发送日志
```http
POST /api/plugin/log
Content-Type: application/json
{
"pluginId": "my-plugin",
"timeStamp": "2024-01-01 12:00:00",
"response": "我的插件",
"logType": "信息",
"msg": "日志内容",
"color": "#409EFF"
}
```
**日志颜色参考**:
- 成功: `#67C23A`
- 信息: `#409EFF`
- 警告: `#E6A23C`
- 错误: `#F56C6C`
#### 4. 监听事件 (SSE)
```javascript
const eventSource = new EventSource("http://localhost:9001/api/plugin/events");
eventSource.onmessage = (event) => {
const data = JSON.parse(event.data);
console.log("事件类型:", data.type);
console.log("事件数据:", data.data);
};
```
### 微信 API
所有微信 API 使用统一格式:
```http
POST /api/wechat/{接口名}?port={端口号}
Content-Type: application/json
{
// 接口参数
}
```
#### 常用接口示例
**发送文本消息**:
```javascript
await fetch("http://localhost:9001/api/wechat/sendText?port=19088", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
wxid: "wxid_xxx",
msg: "你好",
}),
});
```
**获取好友列表**:
```javascript
await fetch("http://localhost:9001/api/wechat/getFriendList?port=19088", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
type: "1", // 1=从缓存获取,2=重新遍历
}),
});
```
**获取群聊列表**:
```javascript
await fetch("http://localhost:9001/api/wechat/getGroupList?port=19088", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
type: "2",
}),
});
```
---
## ⚙️ 配置说明
### 主配置文件 (configs/config.yaml)
```yaml
server:
address: :9001 # HTTP服务地址
callBackUrl: wechat/callback # 回调路径
system:
appName: 奶狗微信框架 V1.0.0
resourcePath: resources
theme: light # 主题: light/dark/system
wechat:
cachePath: C:\Users\...\NdogCache\
clearLog: 100 # 日志清理阈值
decodePict: "1" # 是否解码图片
groupMemberEvent: "1" # 群成员事件
hookSilk: "1" # Hook语音
ignoreMsg: 5 # 忽略消息数
installationPath: D:\soft\Weixin
logs: true # 是否记录日志
resend: "1" # 重发消息
timeOut: 9000 # 超时时间
update: "1" # 自动更新
version:
- 4.12.17 # 支持的微信版本
```
---
## 🛠️ 开发指南
### 项目结构
```
wechat-framework/
├── cmd/app/ # 应用程序入口
├── internal/ # 内部包
│ ├── core/ # 核心业务逻辑
│ ├── api/ # API层
│ ├── config/ # 配置管理
│ └── server/ # HTTP服务器
├── pkg/ # 公共包
│ ├── logger/ # 日志服务
│ └── types/ # 类型定义
├── service/ # 旧版服务(兼容)
├── frontend/ # 前端代码
│ ├── src/
│ │ ├── pages/ # 页面组件
│ │ ├── components/ # 公共组件
│ │ └── hooks/ # 自定义Hooks
│ └── bindings/ # Wails绑定
├── configs/ # 配置文件
├── resources/ # 资源文件
└── plugins/ # 插件目录
```
### 开发模式
```bash
# 启动开发模式(热重载)
wails3 dev
# 或使用 task
wails3 task dev
```
### 生产构建
```bash
# 构建前端
cd frontend
npm run build
cd ..
# 构建应用
wails3 build
```
## ❓ 常见问题
### Q: 启动失败?
**A**: 检查以下几点:
1. 端口 9001 是否被占用
2. 微信客户端是否已安装
3. 查看日志文件排查错误
### Q: 插件无法加载?
**A**:
1. 检查 `plugin.json` 格式是否正确
2. 确认插件 ID 唯一
3. 查看控制台错误信息
### Q: 事件接收不到?
**A**:
1. 确认微信已登录
2. 检查回调地址配置
3. 查看网络连接状态
### Q: 配置保存失败?
**A**:
1. 确认 `configs` 目录存在
2. 检查文件权限
3. 查看后端日志
---
## 🤝 贡献指南
欢迎贡献代码、报告问题或提出建议!
---
## ⚠️ 免责声明
本项目仅供学习和研究使用,请勿用于商业用途、违法内容或生产环境。使用本项目所产生的一切后果由使用者自行承担,与作者无关。
---
## 📄 许可证
不需要,随意二开、使用。
---
## 🙏 致谢
- [千寻](https://www.cnblogs.com/daen/p/-/qxpro)
---
## 📮 联系方式
- **QQ 交流群**: 1654819
---
**如果这个项目对你有帮助,请给一个 ⭐️ Star 支持一下!**