> 重要:先按本 skill 的流程执行,再调用具体业务接口。不要绕过这里的 token 校验和落盘逻辑。
这个 Skill 用于为西之月相关自动化提供稳定的用户登录态。它支持普通终端场景,也支持 OpenClaw 会话中的二维码展示。
Authorization: Bearer 获取二维码 -> 解码 wxacode -> 展示给用户 -> 轮询 scan_token
-> confirmed -> 保存 token -> 调用 /umc/user/user/info 验证
-> invalid/expired -> 提示重新获取二维码
scan_token 和 wxacodewxacode 的 data URI 解码为 PNG 文件/umc/miniprogram/qrcode/pollconfirmed 时保存:access_tokenrefresh_tokentoken_typeexpires_inexpires_atuser_infoAuthorization: Bearer 访问 /umc/user/user/info# 获取二维码,默认非阻塞
python scripts/westmoon_login.py
# 显式阻塞等待扫码完成
python scripts/westmoon_login.py --blocking
# 继续上一次未完成的扫码轮询
python scripts/westmoon_login.py --continue
# 用指定 scan_token 继续轮询
python scripts/westmoon_login.py --poll <scan_token>
# 查看本地登录态摘要
python scripts/westmoon_login.py --status
# 校验当前 token 是否有效
python scripts/westmoon_login.py --check
# 读取用户信息
python scripts/westmoon_login.py --userinfo
# 清除本地登录态
python scripts/westmoon_login.py --logout
from scripts.westmoon_login import WestmoonLoginManager
manager = WestmoonLoginManager()
result = manager.login()
if result.success and result.scan_token:
print(result.message)
print(result.scan_token)
scan_token 存到 ~/.westmoon-user-login/pending_login.json--continue 或 --poll 完成登录--blocking,此时会每 5 秒轮询一次OPENCLAW_SESSION=1,脚本会打印:[OPENCLAW_SEND_FILE]...[/OPENCLAW_SEND_FILE]data:image/png;base64,...默认保存到:
~/.westmoon-user-login/tokens.json
其他技能优先读取这个文件,或直接使用 scripts/token_manager.py。
scripts/westmoon_login.py统一入口,负责编排二维码、轮询、持久化、用户信息验证
scripts/qr_code_client.py 负责调用生成接口、解析 wxacode、保存二维码文件
scripts/status_poller.py负责轮询扫码状态
scripts/token_manager.py负责登录态落盘、读取、过期判断
references/api_reference.md西之月扫码登录接口速查
references/integration_guide.md其他 Skill 如何复用登录态
--check详细接口和复用方式请按需读取:
共 1 个版本