用途
jimeng-login 用于即梦AI平台(jimeng.jianying.com)的浏览器登录。当需要操作即梦数字人、视频生成等功能前检测到未登录时触发,负责完成协议同意、抖音 OAuth 扫码以及登录态持久化。
前置条件
OpenClaw 浏览器已启动(profile=openclaw);即梦页面已打开或即将打开。
登录检测
判断即梦是否已登录的方式:未登录时左侧栏底部显示“登录”按钮;已登录时左侧栏底部显示用户头像和“开会员”入口。检测方式为对即梦页面做 snapshot,查找 menuitem“登录”元素,存在则未登录。
登录流程
-
同意协议弹框:点击“登录”按钮后弹出“同意协议后前往登录”对话框。关键坑点是 aria-ref 点击“同意”按钮经常超时,改用 JS 点击。先用 evaluate 查询 [role="dialog"] button,收集按钮的 tag、text、class 信息;找到 class 包含 agree-button 的按钮后,通过 document.querySelector('[class*="agree-button"]') 执行 click。
-
抖音 OAuth 扫码:同意协议后,即梦会弹出新标签页跳转到 open.douyin.com 的抖音授权页面(不是页内弹窗)。操作步骤为:调用 browser tabs 查找 title 包含“抖音授权”的标签页;对该标签页截图,获取二维码图片;用 message 工具将截图发送给用户(media 参数传本地图片路径);提示用户打开抖音APP,使用左上角扫一扫进行扫码授权。注意:多次点击登录会产生多个抖音授权标签页,只需取最新的一个。
-
等待用户扫码确认:用户扫码后,抖音授权标签页会自动关闭或跳转,即梦主页面刷新为已登录状态。验证方式为对即梦主页面截图,确认左下角不再显示“登录”,而是用户头像。
-
登录态持久化:登录态自动保存在 Chrome user-data 目录 ~/.openclaw/browser/openclaw/user-data,下次 browser start profile=openclaw 启动时自动保持登录。可选:导出 cookies 备份到 memory/jimeng-cookies-backup.json,方式为执行 () => { return document.cookie; }。
适用场景
适用于需要在即梦平台上操作数字人、视频生成等功能、但检测到未登录时,自动或半自动完成登录并维持登录态的场景。
常见问题
“同意”按钮 aria-ref 点击超时:用 JS evaluate 通过 class 选择器点击。登录后页面没变化:刷新即梦主页面(navigate 回原 URL)。open_id cross app 错误:发送图片用 message 工具而非直接调飞书 API。多个抖音授权标签页:用 browser tabs 列出,只操作最新的,关闭多余的。二维码过期:关闭抖音授权标签页,重新点击即梦登录按钮。
限制
依赖已启动的 OpenClaw 浏览器(profile=openclaw);扫码授权环节需要用户手动使用抖音APP完成;其他平台或非浏览器环境下的登录方式暂未提供。