Files
wechat-access-unqclawed/README.md

92 lines
2.7 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.
# wechat-access-unqclawed
OpenClaw 微信通路插件 — 通过 WeChat OAuth 扫码登录获取 token连接 AGP WebSocket 网关收发消息。
## 安装
```bash
openclaw plugins install @henryxiaoyang/wechat-access-unqclawed
```
安装后启用渠道:
```bash
openclaw config set channels.wechat-access-unqclawed.enabled true
```
重启 Gateway首次启动会在终端显示微信扫码登录二维码。
## 功能
- 微信扫码登录(终端二维码 + 浏览器链接)
- Token 自动持久化,重启免登录
- AGP 协议 WebSocket 双向通信(流式文本、工具调用)
- 邀请码验证(可配置跳过)
- 支持生产/测试环境切换
- `/wechat-login` 命令手动触发扫码登录
- `/wechat-logout` 命令清除已保存的登录态
## 配置
在 OpenClaw 配置文件的 `channels.wechat-access-unqclawed` 下:
```json
{
"channels": {
"wechat-access-unqclawed": {
"enabled": true,
"token": "",
"wsUrl": "",
"bypassInvite": false,
"environment": "production"
}
}
}
```
| 字段 | 类型 | 说明 |
|------|------|------|
| `enabled` | boolean | 启用渠道(必须设为 `true` |
| `token` | string | 手动指定 channel token留空则走扫码登录 |
| `wsUrl` | string | WebSocket 网关地址(留空使用环境默认值) |
| `bypassInvite` | boolean | 跳过邀请码验证 |
| `environment` | string | `production``test` |
| `authStatePath` | string | 自定义 token 持久化路径 |
## Token 获取策略
1. 读取配置中的 `token` — 如果有,直接使用
2. 读取本地保存的登录态(`~/.openclaw/wechat-access-auth.json`
3. 以上都没有 — 启动交互式微信扫码登录
## 项目结构
```
index.ts # 插件入口,注册渠道、启停 WebSocket
auth/
types.ts # 认证相关类型
environments.ts # 生产/测试环境配置
device-guid.ts # 设备 GUID 生成(随机,持久化)
qclaw-api.ts # QClaw JPRX 网关 API 客户端
state-store.ts # Token 持久化
wechat-login.ts # 扫码登录流程编排
websocket/
types.ts # AGP 协议类型
websocket-client.ts # WebSocket 客户端(连接、心跳、重连)
message-handler.ts # 消息处理(调用 Agent
message-adapter.ts # AGP <-> OpenClaw 消息适配
common/
runtime.ts # OpenClaw 运行时单例
agent-events.ts # Agent 事件订阅
message-context.ts # 消息上下文构建
http/ # HTTP webhook 通道(备用)
```
## 协议
AGP (Agent Gateway Protocol) — 基于 WebSocket Text 帧的 JSON 消息协议,详见 `websocket.md`
## License
MIT