back
loading skill details...
GEO sau 自媒体群发 — 从 Backend 导出成稿,本机 sau CLI 发布并回写 SaaS。
---
name: geo-social-publish
description: GEO sau 自媒体群发 — 从 Backend 导出成稿,本机 sau CLI 发布并回写 SaaS。
requires:
bins:
- sau
---
# GEO 自媒体分发(sau)
本轮 Celery 已生成 `CG-*` 后,用 [social-auto-upload](https://github.com/dreammis/social-auto-upload) 发到抖音/小红书等,并回写发稿记录。
## 前置
1. 安装 sau:`uv pip install -e .`(在 social-auto-upload 仓库目录)
2. 各平台登录:`sau xiaohongshu login`、`sau douyin login` 等
3. Cookie 目录建议:`~/.qclaw/sau-cookies/{platform}/`(或 `~/.openclaw/sau-cookies/{platform}/`)
4. OPT 任务配置 `sauPublishTargets`:如 `["xiaohongshu","douyin"]`
## 1. 导出成稿
```bash
GEO_KEY=$(cat ~/.qclaw/geo-api-key 2>/dev/null || cat ~/.openclaw/geo-api-key 2>/dev/null)
CG_ID="CG-XXXXXXXX"
curl -s "https://ai.gaobobo.cn/api/geo/publish/export/$CG_ID" \
-H "Authorization: Bearer $GEO_KEY"
```
得到 `title`、`plainText`、`htmlBody`、`brandName`。
将 `htmlBody` 写入临时文件,例如 `./tmp/article.html`。
## 2. sau 发布(示例)
以小红书图文为例(以 sau 仓库当前 CLI 为准,见 `install.md` / `docs/agent-bootstrap.md`):
```bash
sau xiaohongshu upload-image \
--title "标题" \
--content-file ./tmp/article.html
```
抖音等平台替换子命令;检查退出码。
## 3. 回写 SaaS
```bash
curl -s -X POST "https://ai.gaobobo.cn/api/geo/publish/social/report" \
-H "Authorization: Bearer $GEO_KEY" \
-H "Content-Type: application/json" \
-d '{
"optimization_task_id": "OPT-XXX",
"cycle_number": 1,
"content_task_id": "CG-XXX",
"platform": "xiaohongshu",
"status": "success",
"platform_url": "https://..."
}'
```
`status` 可为 `success` 或 `failed`;失败时填 `error`。
## 4. 验证
再次 `GET /api/geo/optimization/{OPT_ID}/cycles/latest`,`cycleStepResults.sauPublish.platforms.xiaohongshu.status` 应为 `success`。
## 注意
- Cookie 仅存本机,服务端不保存
- 网易号 OAuth 发稿仍由 SaaS Celery 负责,与本 Skill 并行
don't have the plugin yet? install it then click "run inline in claude" again.