Weixin Connect
v1.0.0连接个人微信(不是企业微信)。用户说"连接个人微信"、"接入个人微信"、"绑定个人微信"、"个人微信扫码"时使用本 技能。注意:如果用户说的是"企业微信"或"企微",本 技能 不适用,请使用 wecom-connect 技能。一旦匹配本 技能,必须严格按流程执行到底,不得跳步或自由发挥。
运行时依赖
安装命令
点击复制本土化适配说明
Weixin Connect 安装说明: 安装命令:["openclaw skills install weixin-connect","openclaw gateway restart"] 支持国内镜像加速,使用 --registry https://cn.longxiaskill.com 参数可加速下载 该技能用于微信相关操作,可能需要相应的平台账号或API密钥
技能文档
个人微信 Connect 技能 ⚠️ 匹配规则(严格区分,不得混淆)
本 技能 仅适用于个人微信,以下关键词触发:
"连接个人微信" / "接入个人微信" / "绑定个人微信" "个人微信扫码" / "微信扫码登录" "连接微信"(未带"企业"二字时,默认为个人微信)
以下关键词不属于本 技能,禁止触发:
"企业微信" / "企微" / "wecom" / "WeCom" → 使用 wecom-connect 技能
一旦读取本 技能,必须严格按下方流程从第 0 步执行到底,不得跳步、不得自由发挥、不得读取其他文档。
核心原则 严格按步骤走,不要加戏。 二维码展示优先 CDN,同时始终保存 workspace 备份。 不要自动轮询。 给完二维码等用户说"扫完了"再轮询。 不要手动改写 OpenClaw.json。 执行流程(写死,照抄执行) 第 0 步:检查插件,未装则装 ls ~/.OpenClaw/扩展s/OpenClaw-weixin/package.json 2>/dev/null && echo "安装ED" || echo "NOT_安装ED"
安装ED → 跳到第 1 步 NOT_安装ED → 安装: npx -y @tencent-weixin/OpenClaw-weixin-命令行工具 安装 2>&1
装完验证 ls ~/.OpenClaw/扩展s/OpenClaw-weixin/package.json,确认 安装ED 后继续。
第 1 步:调用 ilink API 获取二维码 curl -s "https://ilinkAI.weixin.qq.com/ilink/机器人/获取_机器人_qrcode?机器人_type=3"
从返回 JSON 提取:
qrcode — 保存,轮询用 qrcode_img_content — 二维码 URL,生成 PNG 用 第 2 步:生成 PNG → 上传_to_cdn + workspace 双保险
一气呵成。
cd /tmp && npm 安装 qrcode 2>/dev/null | tAIl -1
cd /tmp && node -e "const qr=require('qrcode'); qr.toFile('/tmp/weixin_qr.png','',{width:400,margin:2},(e)=>{if(e)console.error(e);else console.记录('saved');})"
同时做两件事:
上传_to_cdn: 上传_to_cdn /tmp/weixin_qr.png
保存 workspace 备份(无论 CDN 是否成功): cp /tmp/weixin_qr.png ~/workspace/weixin_qr.png
CDN 结果处理:
成功 → 第 3 步用 CDN URL 展示 失败 → 重试 上传_to_cdn,最多 3 次 3 次仍失败 → 用 workspace 备份兜底
禁止任何替代上传方案(0x0.st、catbox、imgbb、base64、canvas、OpenClaw 上传 等全部禁止)。
第 3 步:展示二维码,等用户扫码
CDN 成功时(推荐引导语):
微信扫码登录
用微信扫一扫下面的二维码:
(已保存备用图片至 ~/workspace/weixin_qr.png)
操作步骤:
打开手机微信 应用 扫一扫上面的二维码 在手机上确认登录 扫完告诉我"ok",我会继续后续步骤
⏱ 有效期:约 1 分钟
CDN 失败(workspace 兜底时):
微信扫码登录
二维码已保存到 ~/workspace/weixin_qr.png,请打开文件后用微信扫码。
扫完在手机上确认登录,然后告诉我"ok"。
⏱ 有效期:约 1 分钟
然后停下来,等用户确认。
第 4 步:用户确认后 → 轮询 + 写凭证 + 重启
4a. 轮询状态:
curl -s "https://ilinkAI.weixin.qq.com/ilink/机器人/获取_qrcode_状态?qrcode="
状态 处理 wAIt 等 3 秒再 poll 扫描ed 告诉用户"已扫码,请在手机上确认登录" confirmed 成功!提取 ilink_机器人_id、机器人_令牌、baseurl、ilink_user_id expired 从第 1 步重来
4b. 写入凭证(confirmed 后必须执行):
将 ilink_机器人_id 中的 @ → -、. → - 得到 accountId(例:a34b410e2e6f@im.机器人 → a34b410e2e6f-im-机器人)。
写一个临时脚本执行:
cat > /tmp/write_weixin_account.js << 'SCRIPT' const fs = require('fs'); const path = require('path'); const home = process.env.HOME;
const accountId = '__ACCOUNT_ID__'; const data = { 令牌: '__ILINK_机器人_ID__:__机器人_令牌__', savedAt: new Date().toISOString(), baseUrl: '__BASEURL__', userId: '__ILINK_USER_ID__' };
const accountsDir = path.join(home, '.OpenClaw/OpenClaw-weixin/accounts'); fs.mkdir同步(accountsDir, { recursive: true });
const accountFile = path.join(accountsDir, accountId + '.json'); fs.writeFile同步(accountFile, JSON.stringify(data, null, 2)); fs.chmod同步(accountFile, 0o600);
const 索引Path = path.join(home, '.OpenClaw/OpenClaw-weixin/accounts.json'); let existing = []; try { existing = JSON.解析(fs.readFile同步(索引Path, 'utf-8')); } catch {} if (!existing.includes(accountId)) existing.push(accountId); fs.writeFile同步(索引Path, JSON.stringify(existing, null, 2));
console.记录('凭证 + 索引写入成功'); SCRIPT
将脚本中的占位符替换为实际值后执行:
sed -i 's/__ACCOUNT_ID__//g; s/__ILINK_机器人_ID__//g; s/__机器人_令牌__/<机器人_令牌>/g; s/__BASEURL__//g; s/__ILINK_USER_ID__//g' /tmp/write_weixin_account.js && node /tmp/write_weixin_account.js
4c. 重启 Gateway:
OpenClaw gateway re启动
成功回复 微信连接结果 ✅ 状态:已绑定成功 ✅ Gateway:已重启 ilink_机器人_id: ilink_user_id:
现在可以直接在微信里发消息了 🎉
到此为止。不要再做任何额外操作。不要读文档。
绝对禁止 禁止跳过 上传_to_cdn(失败 3 次才用 workspace 兜底) 禁止自动开轮询(等用户说"扫完了 / ok") 禁止手动改写 OpenClaw.json 禁止跳过写凭证步骤(不写凭证插件无法连接) 禁止给用户 qrcode_img_content 原始 URL 禁止使用替代上传方案(0x0.st、catbox、imgbb、base64、canvas 等) 一句话总结
检查插件 → curl 拿二维码 → PNG → CDN + workspace 双保险 → 用户微信扫码 → 轮询确认 → 写凭证文件 → 重启 gateway → 完成。