乐于分享
好东西不私藏

OpenClaw接入微信教程及常见错误解决

OpenClaw接入微信教程及常见错误解决

OpenClaw 接入微信教程及常见错误解决

📌 背景

今天有个好消息:微信官方支持 OpenClaw 了

早上看到新闻就兴冲冲地开始安装,按照官方教程操作,安装倒是成功了,但遇到了几个坑 。下午花时间看了下代码,折腾了大半天,终于搞定,把过程记录下来分享给大家。先是按照微信的提示让openclaw自己安装 不出意外失败了.

📥 官方安装步骤

前置要求

微信需要升级到最新版 8.0.69,Play 市场的版本还是 .67,需要从其他渠道更新。

安装插件 如果是其他环境 替换openclaw-cli 成openclaw就行

docker compose run -T --rm openclaw-cli plugins install @tencent-weixin/openclaw-weixin-cli@latest

登录微信

docker compose run -T --rm openclaw-cli channels login --channel openclaw-weixin

然后问题来了...

❌ 遇到的错误

错误 1:resolvePreferredOpenClawTmpDir is not a function

[plugins] openclaw-weixin failed to load from /home/node/.openclaw/extensions/openclaw-weixin/index.ts: 
TypeError: (0 , _pluginSdk.resolvePreferredOpenClawTmpDir) is not a function

错误 2:normalizeAccountId is not a function

Channel login failed: TypeError: (0 , _pluginSdk.normalizeAccountId) is not a function

✅ 解决方案

修复 1:messaging/process-message.ts

先用 grep 找到相关代码:

grep -r "resolvePreferredOpenClawTmpDir"

修改导入路径,从特定子模块导入相关函数。

修复 2:auth/accounts.ts 和 channel.ts

// 修改前
import { normalizeAccountId } from "openclaw/plugin-sdk";

// 修改后
import { normalizeAccountId } from "openclaw/plugin-sdk/account-id";

修复 3:messaging/send.ts

// 修改前
import { stripMarkdown } from "openclaw/plugin-sdk";

// 修改后
import { stripMarkdown } from "openclaw/plugin-sdk/bluebubbles";

🔄 完整流程

修改完成后,需要重新构建 Docker 镜像:

# 拉取最新代码
git pull

# 重新构建镜像
docker build -t openclaw:local . --build-arg OPENCLAW_DOCKER_APT_PACKAGES="python3-pip wget"

# 重启服务
docker compose up -d

# 登录微信
docker compose run -T --rm openclaw-cli channels login --channel openclaw-weixin

这次终于成功了!绑定微信账号就可以继续了.

📊 总结

错误 解决方案
resolvePreferredOpenClawTmpDir is not a function plugin-sdk/channel-runtime 导入
normalizeAccountId is not a function plugin-sdk/account-id 导入
stripMarkdown 导入错误 plugin-sdk/bluebubbles 导入

💡 教训

  1. 插件 SDK 版本不匹配时,优先检查导入路径
  2. 翻源码比盲目尝试更高效
  3. 修复问题要一步步来,每修复一个错误可能暴露下一个
  4. 微信自家产品比较多 qqbot就比较不错,微信这边可能要和qclaw兼容所以支持最新版的OpenClaw就有些困难了,和腾讯万年不升级的X5引擎类似

希望这篇教程能帮到同样遇到问题的朋友!