OpenClaw微信插件修复 | AI生成和翻译
好问题。让我详细分解整个过程——从“损坏的插件”到“微信成功连接”的完整链条。
🔍 微信如何被连接——完整解析
第一阶段:诊断
- 你要求检查微信插件
- 运行
openclaw status——获得清晰的错误:TypeError: (0, _pluginSdk.resolvePreferredOpenClawTmpDir) is not a function - 检查插件版本:
v1.0.3(3月29日安装) - 在 npm 上搜索最新版本:
v2.1.6存在 - 根本原因:v1.0.3 调用了一个来自 OpenClaw Plugin SDK 的函数,该函数在新版 OpenClaw(2026.4.2)中被移除/重命名
第二阶段:失败的尝试
- 在扩展目录内运行
npm install @tencent-weixin/openclaw-weixin@2.1.6 - 为何不成功:OpenClaw 扩展采用源码优先模式——它直接从扩展目录加载
index.ts和src/,而不是从node_modules加载。npm 仅更新了package.json+node_modules/,旧的.ts源码文件未被触及
第三阶段:修复
- 备份旧扩展目录:
mv openclaw-weixin openclaw-weixin.bak - 使用 npm 将 v2.1.6 源码安装到临时目录:
npm install @tencent-weixin/openclaw-weixin@2.1.6 --prefix weixin-tmp - 复制源码从
weixin-tmp/node_modules/@tencent-weixin/openclaw-weixin/→ 新的openclaw-weixin/目录(这次真正获取了 v2.1.6 的源码文件) - 在新目录内运行
npm install以安装依赖项(557个包) - 清理临时目录
- 验证:
package.json现在显示"version": "2.1.6",且openclaw status不再抛出 SDK 错误
第四阶段:二维码登录
- 阅读插件源码以找到登录命令——发现它通过
openclaw channels login --channel openclaw-weixin注册 - 登录流程:
- 插件调用
https://ilinkai.weixin.qq.com/ilink/bot/get_bot_qrcode?bot_type=3获取二维码 - 在终端中以 ASCII 艺术形式渲染并提供直接 URL
- 每1秒长轮询
get_qrcode_status,最长持续8分钟 - 状态:
wait→scaned→confirmed - 当状态为
confirmed时,将bot_token+ilink_bot_id+baseurl保存至openclaw.json
- 插件调用
- 你用微信扫描了二维码并在应用中确认
- 插件接收到
bot_token,将配置写入磁盘 - 运行
openclaw gateway restart以用新账户重新加载
各工具的作用
| 工具 | 用途 |
|---|---|
exec |
运行所有 shell 命令——npm install、openclaw status、grep、文件读取 |
process |
监控长时间运行命令(mtr、npm、登录过程) |
read |
阅读插件源码以理解登录 API |
web_search / memory_search |
上下文收集(本次无需网络搜索) |
cron |
审查现有的 cron 任务,用于生成综合性报告 |
为何能成功
关键洞察在于:OpenClaw 扩展不是标准的 npm 包——它们是从扩展目录以源码形式加载的。简单的 npm install 不会替换 .ts 文件。我不得不通过 npm 在临时位置获取新源码,然后整体复制过来。🦞