Weixin OpenClaw Login
这个 skill 用来安装、排查、记录微信个人号接入 OpenClaw 的官方登录流程。
快速流程
- 1. 安装或更新插件:
-
npx -y @tencent-weixin/openclaw-weixin-cli install
- 2. 如果终端字符二维码不方便扫码,直接抓取原始二维码授权链接。
- 让用户在电脑上打开二维码页面,用微信扫码。
- 轮询扫码状态,直到出现
confirmed 或 bot_token。 - 用
openclaw status 检查渠道状态。 - 如果腾讯侧已经确认登录,但 OpenClaw 仍显示
SETUP / no token,检查本地状态文件 ~/.openclaw/openclaw-weixin/。
优先使用脚本
优先使用本 skill 自带脚本:
- - 获取新二维码链接: INLINECODE6
- 轮询扫码状态: INLINECODE7
如果只需要快速人工操作,可继续使用下面的命令版步骤。
获取原始授权链接
插件源码表明,登录本质上是调用腾讯 ilink 接口并拿到一个真实的二维码页面 URL。
优先命令:
CODEBLOCK0
脚本会打印:
- -
qrcode_img_content:真正应该在浏览器打开的二维码页面链接 - INLINECODE9 :用于查询扫码状态的 token
如果不想用脚本,也可以直接执行:
CODEBLOCK1
相比转发终端字符二维码,这种方式通常更稳。
查询扫码状态
推荐脚本:
CODEBLOCK2
例如:
CODEBLOCK3
如果只想单次查询,也可以用命令方式:
CODEBLOCK4
常见状态:
- -
wait:还没扫码 - INLINECODE11 :已经扫码,但还没最终确认
- INLINECODE12 :已确认登录
- 返回里还可能带:
bot_token、ilink_bot_id、baseurl、 INLINECODE16
只要出现 bot_token,就可以认定腾讯侧登录已经成功,即使 OpenClaw 本地状态还没立刻刷新。
OpenClaw 本地把微信状态存在哪里
检查这些路径:
- - INLINECODE18
- INLINECODE19
- 可选同步缓冲文件: INLINECODE20
一个正常的账号文件通常长这样:
CODEBLOCK5
账号 id 一般会把 @ 和 . 规范化成 -,例如:
- - 原始: INLINECODE24
- 规范化: INLINECODE25
验证是否真正完成
执行:
CODEBLOCK6
成功时通常表现为:
- - channel 是 INLINECODE26
- state 是 INLINECODE27
- detail 显示账号数量,而不是 INLINECODE28
失败时通常表现为:
- - INLINECODE29
- INLINECODE30
如果扫码成功了,但 OpenClaw 还显示 no token
- 1. 先确认轮询结果里已经出现
bot_token。 - 再检查
~/.openclaw/openclaw-weixin/ 下对应文件是否已写入。 - 如果文件已经存在,重启 gateway:
-
openclaw gateway restart
- 4. 再次执行
openclaw status 确认状态。
如果需要更底层的实现说明,读取 references/implementation-notes.md。
Weixin OpenClaw Login
这个 skill 用来安装、排查、记录微信个人号接入 OpenClaw 的官方登录流程。
快速流程
- 1. 安装或更新插件:
- npx -y @tencent-weixin/openclaw-weixin-cli install
- 2. 如果终端字符二维码不方便扫码,直接抓取原始二维码授权链接。
- 让用户在电脑上打开二维码页面,用微信扫码。
- 轮询扫码状态,直到出现 confirmed 或 bot_token。
- 用 openclaw status 检查渠道状态。
- 如果腾讯侧已经确认登录,但 OpenClaw 仍显示 SETUP / no token,检查本地状态文件 ~/.openclaw/openclaw-weixin/。
优先使用脚本
优先使用本 skill 自带脚本:
- - 获取新二维码链接:scripts/get-login-url.js
- 轮询扫码状态:scripts/poll-login-status.py
如果只需要快速人工操作,可继续使用下面的命令版步骤。
获取原始授权链接
插件源码表明,登录本质上是调用腾讯 ilink 接口并拿到一个真实的二维码页面 URL。
优先命令:
bash
node scripts/get-login-url.js
脚本会打印:
- - qrcodeimgcontent:真正应该在浏览器打开的二维码页面链接
- QRCODE=...:用于查询扫码状态的 token
如果不想用脚本,也可以直接执行:
bash
node - <
const url=https://ilinkai.weixin.qq.com/ilink/bot/getbotqrcode?bot_type=3;
fetch(url)
.then(r=>r.json())
.then(j=>{
console.log(j.qrcodeimgcontent || );
console.log(QRCODE= + j.qrcode);
});
NODE
相比转发终端字符二维码,这种方式通常更稳。
查询扫码状态
推荐脚本:
bash
python3 scripts/poll-login-status.py
例如:
bash
python3 scripts/poll-login-status.py 1cf42ee545e62408992daa64b38a37d9
如果只想单次查询,也可以用命令方式:
bash
python3 - <
import urllib.request, json
qrcode = REPLACE_ME
url = fhttps://ilinkai.weixin.qq.com/ilink/bot/getqrcodestatus?qrcode={qrcode}
req = urllib.request.Request(url, headers={iLink-App-ClientVersion:1})
with urllib.request.urlopen(req, timeout=40) as r:
print(json.loads(r.read().decode()))
PY
常见状态:
- - wait:还没扫码
- scaned:已经扫码,但还没最终确认
- confirmed:已确认登录
- 返回里还可能带:bottoken、ilinkbotid、baseurl、ilinkuser_id
只要出现 bot_token,就可以认定腾讯侧登录已经成功,即使 OpenClaw 本地状态还没立刻刷新。
OpenClaw 本地把微信状态存在哪里
检查这些路径:
- - ~/.openclaw/openclaw-weixin/accounts.json
- ~/.openclaw/openclaw-weixin/accounts/.json
- 可选同步缓冲文件:*.sync.json
一个正常的账号文件通常长这样:
json
{
token: ,
savedAt: ,
baseUrl: https://ilinkai.weixin.qq.com
}
账号 id 一般会把 @ 和 . 规范化成 -,例如:
- - 原始:4b22f436d38f@im.bot
- 规范化:4b22f436d38f-im-bot
验证是否真正完成
执行:
bash
openclaw status
成功时通常表现为:
- - channel 是 openclaw-weixin
- state 是 OK
- detail 显示账号数量,而不是 no token
失败时通常表现为:
如果扫码成功了,但 OpenClaw 还显示 no token
- 1. 先确认轮询结果里已经出现 bot_token。
- 再检查 ~/.openclaw/openclaw-weixin/ 下对应文件是否已写入。
- 如果文件已经存在,重启 gateway:
- openclaw gateway restart
- 4. 再次执行 openclaw status 确认状态。
如果需要更底层的实现说明,读取 references/implementation-notes.md。