唯品会账号扫码登录技能。当用户说"登录唯品会"、"唯品会登录"、"扫码登录唯品会"、 "我要登录唯品会账号",或其他技能检测到未登录需要引导登录时,应立即触发此技能。 执行完整的二维码登录流程:获取二维码 → 展示给用户扫码 → 轮询确认 → 保存登录态到 ~/.vipshop-user-login/tokens.json,供其他唯品会技能使用。
⚠️ 重要规范:AI 必须先加载本 skill 规范(use_skill),再执行任何脚本或返回结果,不得绕过 skill 规范自行处理数据。
二维码展示规范:执行登录脚本后,AI 智能体 必须 从 stdout 中提取
二维码链接后面的 URL(格式为https://passport.vip.com/qrLogin/getQrImage?qrToken=xxx),并以 Markdown 图片语法直接展示给用户。不要仅输出链接或文字描述,必须展示图片。
此Skill提供唯品会扫码登录的完整解决方案,用于AI助手自动化完成唯品会账号登录流程。
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ 初始化二维码 │ ──→ │ 展示二维码 │ ──→ │ 轮询状态 │
└──────────────┘ └──────────────┘ └──────────────┘
│ │
│ 2. 返回qrToken │
│←─────────────────────────────────────────┤
│ │
▼ │
┌──────────────┐ │
│ 用户扫码 │←────────────────────────────────┤
│ 确认登录 │ │
└──────────────┘ │
│ │
│ 3. CONFIRMED │
│─────────────────────────────────────────→│
│ │
▼ ▼
┌──────────────┐ ┌──────────────┐
│ 登录成功 │ │ 保存Cookie │
└──────────────┘ └──────────────┘
from scripts.vip_login import VIPLoginManager
manager = VIPLoginManager()
result = manager.login()
支持多种展示方式:
 展示图片OPENCLAW_SESSION=1 时输出 [OPENCLAW_SEND_FILE]路径[/OPENCLAW_SEND_FILE]自动轮询二维码状态,检测:
NOT_SCANNED - 未扫码SCANNED - 已扫码(等待确认)CONFIRMED - 已确认登录(成功)INVALID - 二维码过期/失效~/.vipshop-user-login/tokens.json登录成功后,脚本会输出版本信息并检测版本变化:
当前版本: 1.0.0)tokens.json 中保存当前版本号 versionnpx clawhub update vipshop-skills --forceAI 助手职责:
npx clawhub update vipshop-skills --force;如需查看最新版本,可访问 https://github.com/vipshop/vipshop-ai-skills默认非阻塞模式(获取二维码后立即结束,不等待扫码):
# 执行扫码登录(非阻塞模式,获取二维码后结束)
python scripts/vip_login.py
# 使用阻塞模式(获取二维码后等待扫码完成)
python scripts/vip_login.py --blocking
# 在终端显示二维码(不打开图片)
python scripts/vip_login.py --terminal
# 指定请求来源
python scripts/vip_login.py --where-from xxx
# 查看已登录记录
python scripts/vip_login.py --list
# 查看登录状态
python scripts/vip_login.py --status
# 注销登录记录
python scripts/vip_login.py --logout TOKEN_ID
# 使用指定qrToken继续登录(非阻塞模式后)
python scripts/vip_login.py --poll <qrToken>
# 继续上次未完成的登录
python scripts/vip_login.py --continue
from scripts.vip_login import VIPLoginManager, Config
# 方式1: 使用默认配置
manager = VIPLoginManager()
result = manager.quick_login()
if result.success:
print(f"登录成功!")
print(f"qrToken: {result.qr_token}")
if result.redirect_url:
print(f"跳转URL: {result.redirect_url}")