通过 forked camoufox-cli 持久化 session weibo 在微博发布图文/视频内容。微博 API 对个人开发者不友好,浏览器方案更实用。
60
71%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./crews/main/skills/weibo-publish/SKILL.md通过 camoufox-cli 持久化 session weibo(有且只有一个,fail-first 队列:同 session 已有命令在跑时新命令直接 fail)在微博上发布内容(文字、图片、视频)。微博 API 对个人开发者申请门槛高,浏览器自动化是更实用的方案。
主力后端 =
target=camoufox。下方命令 / 示例只针对target=camoufox。target=host/target=node:只按本 skill 的「流程 + 提示事项」走——何时有头 / 何时无头 / 频率限制 / 错误处理约定是后端无关的,照本 skill 执行。不要照搬camoufox-cli ...命令,用你当前后端自带的浏览器工具语义调用即可。
weibo 已登录(登录态存 session profile 里)。本 skill 与 login-manager 完全无关——自管探活 + 登录,不导出 cookie/UA 落中央存储。camoufox-cli --session weibo --persistent --headed --viewport 1920x1080 --json open "https://weibo.com"--viewport 1920x1080:camoufox 默认按指纹给移动端窗口比例,二维码看不全;强制桌面 1920×1080snapshot 验登录态就位--session weibo --persistent 重起无头即恢复,用完再 close。不导出 cookie/UA——登录态只在 session profile 里闭环,不落
~/.openclaw/logins/。本 skill 不调用cookies export/identity export。
1. 启持久化 session + 打开微博首页:
camoufox-cli --session weibo --persistent --json open "https://weibo.com"
2. sleep 3 加载,snapshot 拿到输入框 ref
- 输入框选择器:textarea.W_input 或 [node-type="textEl"] 或 textarea[placeholder*="有什么新鲜事"]
- 如果找不到,open "https://weibo.com" 刷新后重试
3. click <ref> 聚焦输入框
4. camoufox-cli --session weibo --persistent --json type <ref> "微博内容"
- 最长 2000 字符
5. snapshot 找发布按钮 ref:a[node-type="submit"] 或 button[action-type="post"] 或文本为"发布"的按钮
6. camoufox-cli --session weibo --persistent --json click <发布按钮-ref>
7. sleep 3,snapshot 确认发布成功(输入框清空或出现"发布成功"提示)1. 启 session + 打开首页(同文字微博步骤 1-2)
2. snapshot 拿到图片上传按钮 ref:a[node-type="uploadImg"] 或 .W_icon_pic 图标
3. camoufox-cli --session weibo --persistent --json upload <图片-input-ref> <image.jpg> [更多图片...]
- forked cli upload 命令底层走 Playwright setInputFiles,无需 CDP setFileInput hack
- 最多 9 张图片,单张不超过 5MB
4. sleep 等待上传完成(snapshot 看缩略图出现在编辑区)
5. 输入文字内容(同文字微博步骤 3-4)
6. 发布(同文字微博步骤 5-7)1. 启 session + 打开首页(同文字微博步骤 1-2)
2. snapshot 拿到视频上传入口 ref:a[node-type="uploadVideo"]
或 open "https://weibo.com/p/103495:home"(视频发布页)
3. camoufox-cli --session weibo --persistent --json upload <视频-input-ref> <video.mp4>
- 视频限制:mp4 格式,最长 15 分钟,不超过 2GB
4. sleep 等待上传完成(snapshot 看进度条到 100%)
5. 填写描述文字(type 命令)
6. 发布(click 发布按钮)weibo——登录态 + 指纹冻结在磁盘 profile,不留进程占内存;下次发布 --session weibo --persistent 重起无头即恢复。只在 session 卡死时 camoufox-cli --session weibo --json close teardown。session weibo 正忙,请等待当前操作完成后再试)——读到这条文本就等当前操作完成再重试,不要盲试。.publishBtn_1a2b3c)node-type 属性或 placeholder 文本定位,不用 hash classclick 输入框使其展开,sleep 1 后再 type| 情况 | 处理 |
|---|---|
| 未登录 / 登录墙 | 走前置条件的有头手动登录流,重试一次 |
| 输入框找不到 | 刷新页面后重试,或用 placeholder 文本定位 |
| 图片上传失败 | 检查文件大小(<5MB),重试一次 |
| 视频上传超时 | 检查文件大小和网络,等待更长时间 |
| 验证码 / 频率限制 | 等待 60 秒后重试 |
| session 正忙(fail-first) | 等当前操作完成再重试,不要盲试 |
必须调用 published-track 技能记录本次发布。
bcef823
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.