# 微信插件独立测试环境 这是一个独立的测试环境,用于验证微信插件 (`weixin-plugin/`) 的功能。 ## 目录结构 ``` weixin-plugin-test/ ├── package.json # 项目配置和依赖 ├── weixin-plugin/ # 微信插件源码 │ ├── types.ts # 类型定义 │ ├── weixinGateway.ts # 网关入口 │ ├── weixin/ # 核心实现 │ └── dist/ # 编译输出(运行 build 后生成) ├── scripts/ # 测试脚本 │ ├── build-weixin-plugin.sh # 编译脚本 │ ├── test-weixin-simple.js # 简化测试 │ └── test-weixin-plugin.js # 完整测试 └── README.md # 本文档 ``` ## 快速开始 ### 1. 安装依赖 ```bash cd /root/weixin-plugin-test npm install ``` ### 2. 编译插件 ```bash npm run build ``` ### 3. 运行测试 **简化测试(推荐先运行):** ```bash npm run test:simple ``` **完整测试(包含消息监听和自动回复):** ```bash npm run test:full ``` ## 可用命令 | 命令 | 说明 | |------|------| | `npm install` | 安装所有依赖 | | `npm run build` | 编译微信插件 | | `npm run test:simple` | 运行简化测试 | | `npm run test:full` | 运行完整测试 | | `npm run clean` | 清理编译文件 | ## 测试内容 ### 简化测试 (test:simple) 1. ✓ 检查依赖(qrcode 等) 2. ✓ 加载微信插件模块 3. ✓ 获取登录二维码 4. ✓ 等待扫码登录 5. ✓ 启动网关 6. ✓ 验证连接状态 7. ✓ 停止网关 ### 完整测试 (test:full) 包含简化测试的所有内容,额外提供: - 持续监听消息 - 自动回复收到的消息 - 显示运行统计信息 - 按 Ctrl+C 退出 ## 使用流程 1. **安装依赖** ```bash npm install ``` 2. **编译插件** ```bash npm run build ``` 3. **运行测试** ```bash npm run test:simple ``` 4. **扫码登录** - 二维码会保存到 `weixin-qrcode.png` - 使用微信扫描二维码 - 在手机上确认登录 5. **查看结果** - 测试通过会显示成功消息 - 可以看到账号信息和连接状态 ## 故障排除 ### 编译失败 ```bash # 清理后重新编译 npm run clean npm run build ``` ### 模块加载失败 确保已运行编译脚本: ```bash npm run build ``` ### 二维码登录超时 - 检查网络连接 - 确保能访问 `ilinkai.weixin.qq.com` - 重新运行测试 ## 依赖说明 ### 生产依赖 - `qrcode` - 二维码生成 ### 开发依赖 - `@types/qrcode` - qrcode 类型定义 - `typescript` - TypeScript 编译器 ## 数据存储 登录后的账号信息保存在: ``` ~/.openclaw/openclaw-weixin/accounts/ ├── registered-accounts.json # 账号注册表 └── {accountId}.json # 账号数据(token 等) ``` ## 清理数据 如需清理测试账号数据: ```bash # 删除所有测试账号 rm -rf ~/.openclaw/openclaw-weixin/ # 或手动删除特定账号 rm ~/.openclaw/openclaw-weixin/accounts/test-account.json ``` ## 注意事项 1. **编译要求**:修改源码后需要重新编译 2. **网络要求**:需要访问 `ilinkai.weixin.qq.com` 3. **二维码有效期**:5 分钟,过期后会自动刷新(最多 3 次) 4. **自动化限制**:需要手动扫码登录,无法完全自动化 ## 下一步 测试通过后,可以: 1. 将插件集成到主项目 2. 开发自定义消息处理逻辑 3. 添加更多功能(群聊、媒体消息等) --- **最后更新:** 2026-03-30