siluzan-cso-cli 1.0.0-beta.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +100 -0
- package/assets/siluzan-cso/README.md +100 -0
- package/assets/siluzan-cso/SKILL.md +621 -0
- package/assets/siluzan-cso/publish-config-image.example.json +37 -0
- package/assets/siluzan-cso/publish-config.example.json +55 -0
- package/assets/siluzan-cso/reference-api.md +32 -0
- package/assets/siluzan-cso/reference-cso-publish.md +116 -0
- package/dist/chunk-FZS2K2T3.js +225 -0
- package/dist/extract-cover-NFKUUFLS.js +8 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2461 -0
- package/dist/skill/SKILL.md +621 -0
- package/dist/skill/_meta.json +5 -0
- package/dist/skill/publish-config-image.example.json +37 -0
- package/dist/skill/publish-config.example.json +55 -0
- package/dist/skill/reference-api.md +32 -0
- package/dist/skill/reference-cso-publish.md +116 -0
- package/package.json +52 -0
|
@@ -0,0 +1,621 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: siluzan-platform
|
|
3
|
+
description: >-
|
|
4
|
+
协助使用 Siluzan / CSO 完成多平台内容发布与运营:视频/图文发布到抖音、微信视频号、YouTube、TikTok、Instagram 等平台,
|
|
5
|
+
以及素材上传、封面截取、私信回复等内容运营任务。
|
|
6
|
+
注意:本 skill 仅处理「内容发布与运营」,广告账户管理(查余额、充值、绑定MCC/BC/BM)请使用 siluzan-tso skill。
|
|
7
|
+
description_zh: >-
|
|
8
|
+
协助使用 Siluzan / CSO 完成多平台内容发布与运营:视频/图文发布到抖音、微信视频号、YouTube、TikTok、Instagram 等平台,
|
|
9
|
+
以及素材上传、封面截取、私信回复等内容运营任务。
|
|
10
|
+
注意:本 skill 仅处理「内容发布与运营」,广告账户管理(查余额、充值、绑定MCC/BC/BM)请使用 siluzan-tso skill。
|
|
11
|
+
description_en: >-
|
|
12
|
+
Assists with multi-platform content publishing and operations via Siluzan / CSO:
|
|
13
|
+
publish videos/images to TikTok, YouTube, Instagram, Douyin, WeChat Video, and more.
|
|
14
|
+
Also handles asset upload, cover extraction, and DM replies.
|
|
15
|
+
Note: this skill handles CONTENT PUBLISHING only. For ad account management
|
|
16
|
+
(balance, recharge, MCC/BC/BM binding), use the siluzan-tso skill instead.
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# Siluzan 平台 Skill
|
|
20
|
+
|
|
21
|
+
## 核心原则
|
|
22
|
+
|
|
23
|
+
**通过 `siluzan-cso` CLI 完成发布和私信处理,不要手动调接口。**
|
|
24
|
+
|
|
25
|
+
| 命令 | 作用 |
|
|
26
|
+
|------|------|
|
|
27
|
+
| `siluzan-cso login` | **首次使用:交互引导登录并保存 Token(推荐,Token 不进入 shell history)** |
|
|
28
|
+
| `siluzan-cso config show` | 查看当前保存的配置 |
|
|
29
|
+
| `siluzan-cso list-accounts` | 列出所有可用媒体账号 |
|
|
30
|
+
| `siluzan-cso upload -f <file>` | 上传本地视频/图片到素材库 |
|
|
31
|
+
| `siluzan-cso upload -f <video.mp4> --cover <cover.jpg>` | 上传视频(必须同时提供封面) |
|
|
32
|
+
| `siluzan-cso extract-cover -f <video> -p <platform> -t <秒>` | 从视频截取封面帧,按平台规格裁剪缩放 |
|
|
33
|
+
| `siluzan-cso extract-cover --list-platforms` | 查看所有平台封面尺寸规格 |
|
|
34
|
+
| `siluzan-cso publish -c config.json` | 提交发布任务 |
|
|
35
|
+
| `siluzan-cso publish -c config.json --dry-run` | 预览请求体(不提交) |
|
|
36
|
+
| `siluzan-cso letter sessions -a <mediaCustomerId>` | 查询指定账号的私信会话列表 |
|
|
37
|
+
| `siluzan-cso letter messages -a <mediaCustomerId> -u <userId>` | 读取与某用户的消息记录 |
|
|
38
|
+
| `siluzan-cso letter reply -a <mediaCustomerId> -u <userId> -m <mediaType> --text "内容"` | 发送私信回复 |
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## 认证(只需配置一次)
|
|
43
|
+
|
|
44
|
+
**首次使用**时,引导用户运行交互登录向导(Token 通过 readline 输入,**不会出现在 shell history**):
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
siluzan-cso login
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
向导会在终端中提示用户访问 [https://www.siluzan.com](https://www.siluzan.com) 登录,然后在控制台复制 API Token 粘贴到命令行,自动保存到 `~/.siluzan/config.json`(Token 通过 readline 输入,**不写入 shell history**)。
|
|
51
|
+
|
|
52
|
+
> **⚠️ 不要使用 `config set --token <token>` 的方式。** 该方式会将 Token 明文写入 shell history(`~/.bash_history`、`~/.zsh_history`、PowerShell 历史),存在凭证泄露风险。
|
|
53
|
+
|
|
54
|
+
之后所有命令**自动读取**,无需再传 `--token`。
|
|
55
|
+
|
|
56
|
+
**Token 读取优先级(由高到低):**
|
|
57
|
+
1. 环境变量 `SILUZAN_AUTH_TOKEN`(CI/CD 推荐)
|
|
58
|
+
2. `~/.siluzan/config.json` → `authToken`(`login` 写入此处)
|
|
59
|
+
3. 命令行 `--token <token>`(仅紧急临时用,用后立即轮换)
|
|
60
|
+
|
|
61
|
+
> **若用户已配置过 Token,不要重复询问。** 先尝试直接运行命令;只有命令返回认证失败时,才引导用户重新执行 `siluzan-cso login`。
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## 发布流程(AI 必须按此顺序与用户交互)
|
|
66
|
+
|
|
67
|
+
> **⚠️ AI 行为要求:每一步都必须等用户确认后再执行下一步。不要跳步或替用户做选择。**
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
### Step 1:确认 Token
|
|
72
|
+
|
|
73
|
+
首先检查用户是否已配置 Token:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
siluzan-cso config show
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
- 若已配置,继续下一步。
|
|
80
|
+
- 若未配置,引导用户执行 `siluzan-cso login`(交互式,Token 不进 shell history),保存后再继续。
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
### Step 2:询问发布类型
|
|
85
|
+
|
|
86
|
+
**明确询问用户:**
|
|
87
|
+
|
|
88
|
+
> "请问这次要发布的是 **视频** 还是 **图文**(图片+文案)?"
|
|
89
|
+
|
|
90
|
+
根据用户回答确定 `contentType`:
|
|
91
|
+
- 视频 → `contentType: 1`
|
|
92
|
+
- 图文 → `contentType: 2`
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
### Step 3:查询并让用户选择账号
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
siluzan-cso list-accounts
|
|
100
|
+
# 内贸账号加 --domestic
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
命令输出包含每个账号的名称、平台类型和过期时间。
|
|
104
|
+
**展示给用户后,明确询问:**
|
|
105
|
+
|
|
106
|
+
> "以上是可用账号,请告诉我要发布到哪些账号(可多选)?"
|
|
107
|
+
|
|
108
|
+
注意:
|
|
109
|
+
- 过期账号(`到期`日期已过)不可选,告知用户
|
|
110
|
+
- 记住用户选择的账号 `entityId`,后续写入配置文件
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
### Step 4(视频):收集视频内容
|
|
115
|
+
|
|
116
|
+
若为**视频**发布,依次询问:
|
|
117
|
+
|
|
118
|
+
1. **视频文件**:本地路径还是已在素材库中的 `videoId`?
|
|
119
|
+
- 本地文件:继续执行 Step 4a(上传)
|
|
120
|
+
- 已有素材 ID:跳到 Step 4b
|
|
121
|
+
|
|
122
|
+
2. **封面图片**:本地路径(上传视频时必须提供封面)
|
|
123
|
+
|
|
124
|
+
3. **标题**:
|
|
125
|
+
> "请输入发布标题(YouTube 限 100 字以内)"
|
|
126
|
+
|
|
127
|
+
4. **描述**(可选):YouTube / Facebook 有独立描述字段;其他平台忽略此项
|
|
128
|
+
|
|
129
|
+
5. **发布方式**:立即发布 or 定时发布?定时需提供时间(含时区)
|
|
130
|
+
|
|
131
|
+
#### Step 4a:上传本地视频(含封面)
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
siluzan-cso upload -f /path/to/video.mp4 --cover /path/to/cover.jpg
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
命令成功后输出 JSON 片段(含 `videoId`、`videoUrl`、`cover`),直接用于生成配置文件。
|
|
138
|
+
|
|
139
|
+
#### Step 4b:素材库已有视频
|
|
140
|
+
|
|
141
|
+
直接使用用户提供的 `videoId`,封面 URL 同样需要用户提供。
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
### Step 5(图文):收集图文内容
|
|
146
|
+
|
|
147
|
+
若为**图文**发布,依次询问:
|
|
148
|
+
|
|
149
|
+
1. **图片**:本地路径或已有 URL?
|
|
150
|
+
- 本地文件:先上传:`siluzan-cso upload -f /path/to/image.jpg`
|
|
151
|
+
- 已有 URL:直接使用
|
|
152
|
+
2. **文案(标题)**:
|
|
153
|
+
> "请输入图文文案"
|
|
154
|
+
3. **发布方式**:立即 or 定时
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
### Step 6:汇总确认
|
|
159
|
+
|
|
160
|
+
将收集到的信息汇总展示给用户:
|
|
161
|
+
|
|
162
|
+
> "我将为你创建以下发布任务,请确认:
|
|
163
|
+
> - 类型:视频 / 图文
|
|
164
|
+
> - 账号:XXX(YouTube)
|
|
165
|
+
> - 标题:XXX
|
|
166
|
+
> - 发布方式:立即 / 定时(时间)
|
|
167
|
+
> 确认提交?"
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
### Step 7:生成配置文件 & 预览
|
|
172
|
+
|
|
173
|
+
根据用户确认的信息,生成 `publish-config.json`,然后先预览:
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
siluzan-cso publish -c publish-config.json --dry-run
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
> **⚠️ 安全提示(生成配置文件前告知用户):**
|
|
180
|
+
> - `publish-config.json` 包含 `externalMediaAccountTokenId`(账号访问令牌),属于**敏感字段**
|
|
181
|
+
> - **不要将此文件提交到 git**,建议加入 `.gitignore`:
|
|
182
|
+
> ```
|
|
183
|
+
> publish-config.json
|
|
184
|
+
> *-publish-config.json
|
|
185
|
+
> ```
|
|
186
|
+
> - 用完即可删除,或存放在项目目录之外
|
|
187
|
+
|
|
188
|
+
**视频配置最简结构:**
|
|
189
|
+
```json
|
|
190
|
+
{
|
|
191
|
+
"contentType": 1,
|
|
192
|
+
"taskName": "任务名称",
|
|
193
|
+
"videos": [{
|
|
194
|
+
"videoId": "素材库 videoId",
|
|
195
|
+
"videoUrl": "视频 URL",
|
|
196
|
+
"videoName": "文件名.mp4",
|
|
197
|
+
"isMaterialCenter": true,
|
|
198
|
+
"title": "发布标题",
|
|
199
|
+
"cover": { "imageUrl": "封面 URL", "imageName": "cover.jpg", "imageSourceType": 1, "sourceImageId": "封面素材ID" },
|
|
200
|
+
"accounts": [{ "entityId": "...", "mediaAccountType": "YouTube", "mediaCustomerId": "...", "mediaCustomerName": "账号名", "externalMediaAccountTokenId": "..." }],
|
|
201
|
+
"publishMode": "immediate"
|
|
202
|
+
}]
|
|
203
|
+
}
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
**图文配置最简结构:**
|
|
207
|
+
```json
|
|
208
|
+
{
|
|
209
|
+
"contentType": 2,
|
|
210
|
+
"posts": [{
|
|
211
|
+
"title": "图文文案",
|
|
212
|
+
"images": [{ "imageUrl": "图片 URL", "imageName": "img.jpg", "imageSourceType": 1 }],
|
|
213
|
+
"accounts": [{ "entityId": "...", "mediaAccountType": "Instagram", "mediaCustomerId": "...", "mediaCustomerName": "账号名", "externalMediaAccountTokenId": "..." }],
|
|
214
|
+
"publishMode": "scheduled",
|
|
215
|
+
"publishAt": "2026-03-20T10:00:00+08:00"
|
|
216
|
+
}]
|
|
217
|
+
}
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
### Step 8:提交发布
|
|
223
|
+
|
|
224
|
+
用户确认 dry-run 无误后:
|
|
225
|
+
|
|
226
|
+
```bash
|
|
227
|
+
siluzan-cso publish -c publish-config.json
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
成功后告知用户前往 CSO 任务管理页面查看进度:
|
|
231
|
+
- 外贸:`https://www.siluzan.com/v3/foreign_trade/cso/task`
|
|
232
|
+
- 内贸:`https://www.siluzan.com/v3/domestic_trade/cso/task`
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## 校验规则(与 CSO 前端完全一致)
|
|
237
|
+
|
|
238
|
+
| 场景 | 规则 |
|
|
239
|
+
|------|------|
|
|
240
|
+
| 视频 | `videoId`、`title`、`cover.imageUrl` 必填;`accounts` 至少 1 个 |
|
|
241
|
+
| 图文 | 每条至少有有效图片或非空 `title` |
|
|
242
|
+
| 定时 | `publishMode: "scheduled"` 时 `publishAt` 必填(ISO 8601,含时区) |
|
|
243
|
+
| YouTube 标题 | ≤ 100 字,超限有发布失败风险 |
|
|
244
|
+
| description | 仅 YouTube / Facebook 有独立描述;其他平台自动回落为 title |
|
|
245
|
+
| 平台个性化 | 用 `platformOverrides.平台名` 覆盖特定平台的 title / description / topics |
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
249
|
+
## 各平台文案长度限制
|
|
250
|
+
|
|
251
|
+
| 平台 | 视频标题上限 | 视频描述上限 | 图文文案上限 |
|
|
252
|
+
|------|------------|------------|------------|
|
|
253
|
+
| YouTube | **100 字** | 5000 | — |
|
|
254
|
+
| TikTok | 2200 | — | — |
|
|
255
|
+
| Facebook | 5000 | 5000 | 5000 |
|
|
256
|
+
| Instagram | 2200 | — | 2200 |
|
|
257
|
+
| LinkedIn | 5000 | — | 3000 |
|
|
258
|
+
| Twitter / X | 260 | — | 280 |
|
|
259
|
+
| 抖音 Douyin | 500 | — | 2200 |
|
|
260
|
+
| 微信视频号 Channel | 500 | — | 1000 |
|
|
261
|
+
|
|
262
|
+
> - "描述" 仅 YouTube / Facebook 有独立描述字段;其他平台描述自动回落为标题。
|
|
263
|
+
> - 超出上限不一定会被 CSO 阻止,但**平台侧会拒绝**或截断,导致发布失败。
|
|
264
|
+
|
|
265
|
+
---
|
|
266
|
+
|
|
267
|
+
## 平台类型(mediaType)参考
|
|
268
|
+
|
|
269
|
+
| mediaType 值 | 中文名称 | 适用场景 |
|
|
270
|
+
|-------------|---------|---------|
|
|
271
|
+
| `Douyin` | 抖音 | 内贸 |
|
|
272
|
+
| `Kuaishou` | 快手 | 内贸 |
|
|
273
|
+
| `Channel` | 微信视频号 | 内贸 |
|
|
274
|
+
| `TikTokBusinessAccount` | TikTok | 外贸 |
|
|
275
|
+
| `YouTube` | YouTube | 外贸 |
|
|
276
|
+
| `Facebook` | Facebook | 外贸 |
|
|
277
|
+
| `Instagram` | Instagram | 外贸 |
|
|
278
|
+
| `LinkedIn` | LinkedIn | 外贸 |
|
|
279
|
+
| `Twitter` | Twitter / X | 外贸 |
|
|
280
|
+
|
|
281
|
+
**内贸 vs 外贸区别:**
|
|
282
|
+
- `csoPlatformType: 1` = 内贸(isDomesticTrade = true),媒体账号树使用 `mediaGroup: 1`
|
|
283
|
+
- `csoPlatformType: 2` = 外贸,媒体账号树使用 `mediaGroup: 0`
|
|
284
|
+
- `siluzan-cso list-accounts` 返回外贸账号;`siluzan-cso list-accounts --domestic` 返回内贸账号
|
|
285
|
+
|
|
286
|
+
---
|
|
287
|
+
|
|
288
|
+
## CSO Web 功能导航
|
|
289
|
+
|
|
290
|
+
> 以下模块**无对应 CLI 命令**,需引导用户到 CSO Web 界面操作。
|
|
291
|
+
|
|
292
|
+
**CSO 完整访问地址格式:**
|
|
293
|
+
- 外贸:`https://www.siluzan.com/v3/foreign_trade/cso/{页面}`
|
|
294
|
+
- 内贸:`https://www.siluzan.com/v3/domestic_trade/cso/{页面}`
|
|
295
|
+
|
|
296
|
+
用户使用哪种模式,将对应的 `{页面}` 替换为下表中的页面名称即可得到完整 URL。
|
|
297
|
+
|
|
298
|
+
| 页面名称 | 功能 | 常见场景 |
|
|
299
|
+
|---------|------|---------|
|
|
300
|
+
| `task` | 发布任务管理 | 查看发布进度、重新发布失败任务、中止任务 |
|
|
301
|
+
| `ManageAccounts` | 账号管理 | 查看账号状态、重新授权、刷新数据 |
|
|
302
|
+
| `AccountGroup` | 账号分组 | 按分组批量选账号发布 |
|
|
303
|
+
| `TopicGroup` | 话题组管理 | 预设常用 Hashtag 组合 |
|
|
304
|
+
| `postVideo` | 发布内容 | 批量发布视频或图文到多平台 |
|
|
305
|
+
| `publishCalendar` | 发布日历 | 按日历视图查看和创建发布计划 |
|
|
306
|
+
| `marketingCalendar` | 营销日历 | 节日节点、AI 生成营销文案 |
|
|
307
|
+
| `planning` | AI 内容规划 | 生成月度选题规划(AI 自动生成) |
|
|
308
|
+
| `VideoMgr` | 视频/作品管理 | 查看已发布作品、更新隐私设置 |
|
|
309
|
+
| `comment` | 评论管理 | 跨平台批量回复评论、AI 翻译 |
|
|
310
|
+
| `letter` | 私信管理 | 查看和回复多平台私信 |
|
|
311
|
+
| `interaction` | 智能互动 | 配置自动回复规则(仅内贸/抖音) |
|
|
312
|
+
| `Workdata` | 工作数据 | 作品维度数据分析(播放/点赞/评论) |
|
|
313
|
+
| `accountdata` | 账号数据 | 单账号粉丝增长、主页访问趋势 |
|
|
314
|
+
| `table` | 运营报表 | 多账号数据汇总,支持 PDF 导出 |
|
|
315
|
+
| `check` | 账号体检 | AI 生成账号诊断报告(有额度限制) |
|
|
316
|
+
| `words` | 企业词库 | 管理品牌词/专业词(文案辅助) |
|
|
317
|
+
| `web-search` | 灵感搜集 | 搜索竞品/行业热门内容 |
|
|
318
|
+
| `relocation` | 视频搬家 | 跨平台迁移视频(如 TikTok → YouTube) |
|
|
319
|
+
|
|
320
|
+
**示例:** 引导外贸用户查看任务进度 → `https://www.siluzan.com/v3/foreign_trade/cso/task`
|
|
321
|
+
|
|
322
|
+
---
|
|
323
|
+
|
|
324
|
+
## 发布任务管理
|
|
325
|
+
|
|
326
|
+
发布提交后,用户可在任务管理页面进行以下操作(外贸:`https://www.siluzan.com/v3/foreign_trade/cso/task`,内贸:`https://www.siluzan.com/v3/domestic_trade/cso/task`):
|
|
327
|
+
|
|
328
|
+
| 操作 | 说明 |
|
|
329
|
+
|------|------|
|
|
330
|
+
| 查看任务进度 | 按状态筛选:待发布 / 发布中 / 已完成 / 失败 |
|
|
331
|
+
| 重新发布失败条目 | 对单条失败记录执行"重新发布" |
|
|
332
|
+
| 立即发布 | 将定时任务改为立即执行 |
|
|
333
|
+
| 中止任务 | 停止尚未执行的发布任务 |
|
|
334
|
+
| 删除任务 | 删除已完成或失败的任务记录 |
|
|
335
|
+
|
|
336
|
+
**账号状态说明:**
|
|
337
|
+
|
|
338
|
+
| 状态 | 含义 | 处理方式 |
|
|
339
|
+
|------|------|---------|
|
|
340
|
+
| `Linked` | 正常,可发布 | — |
|
|
341
|
+
| `Abnormal` | 账号异常 | 引导用户到账号管理页面(`…/cso/ManageAccounts`)重新授权 |
|
|
342
|
+
| `Expired` | 授权 Token 已过期 | 重新授权 |
|
|
343
|
+
| `NoPermissionToPublish` | 无发布权限 | 检查账号授权范围 |
|
|
344
|
+
|
|
345
|
+
**定时发布注意事项(内贸):** 若定时时间晚于账号 Token 过期时间,CSO 会提示风险;建议在账号管理页面(`https://www.siluzan.com/v3/domestic_trade/cso/ManageAccounts`)刷新账号授权。
|
|
346
|
+
|
|
347
|
+
---
|
|
348
|
+
|
|
349
|
+
## 话题组(TopicGroup)
|
|
350
|
+
|
|
351
|
+
用户可在话题组管理页面预设常用话题组,发布时直接选用,无需每次手动输入:
|
|
352
|
+
- 外贸:`https://www.siluzan.com/v3/foreign_trade/cso/TopicGroup`
|
|
353
|
+
- 内贸:`https://www.siluzan.com/v3/domestic_trade/cso/TopicGroup`
|
|
354
|
+
|
|
355
|
+
**场景提示:**
|
|
356
|
+
- 用户询问如何统一管理 Hashtag → 引导到话题组管理页面
|
|
357
|
+
- 发布后 CSO 会自动将新话题记录到"历史话题组"
|
|
358
|
+
|
|
359
|
+
**话题管理功能:** 创建/编辑/删除/置顶话题组,支持管理员查看所有成员的话题。
|
|
360
|
+
|
|
361
|
+
---
|
|
362
|
+
|
|
363
|
+
## 发布日历与营销日历
|
|
364
|
+
|
|
365
|
+
### 发布日历
|
|
366
|
+
|
|
367
|
+
- 外贸:`https://www.siluzan.com/v3/foreign_trade/cso/publishCalendar`
|
|
368
|
+
- 内贸:`https://www.siluzan.com/v3/domestic_trade/cso/publishCalendar`
|
|
369
|
+
|
|
370
|
+
功能:
|
|
371
|
+
- 以月历视图展示所有发布任务,颜色区分状态
|
|
372
|
+
- 可在日历上**直接创建新发布任务**(点击日期弹出创建抽屉)
|
|
373
|
+
- 支持查看单个任务的发布状态和评论
|
|
374
|
+
|
|
375
|
+
### 营销日历
|
|
376
|
+
|
|
377
|
+
- 外贸:`https://www.siluzan.com/v3/foreign_trade/cso/marketingCalendar`
|
|
378
|
+
- 内贸:`https://www.siluzan.com/v3/domestic_trade/cso/marketingCalendar`
|
|
379
|
+
|
|
380
|
+
功能:
|
|
381
|
+
- 展示全年营销节点(节日、行业事件)
|
|
382
|
+
- 支持按区域筛选(全球/国内/特定市场)
|
|
383
|
+
- **AI 生成营销文案**:基于节日/活动自动生成发布文案
|
|
384
|
+
- 一键跳转到发布日历,预填已生成的文案内容
|
|
385
|
+
- 支持自定义添加营销活动
|
|
386
|
+
|
|
387
|
+
**工作流:** 营销日历 → AI 生成文案 → 跳转发布日历创建任务 → 提交发布
|
|
388
|
+
|
|
389
|
+
---
|
|
390
|
+
|
|
391
|
+
## AI 辅助功能
|
|
392
|
+
|
|
393
|
+
### AI 内容规划
|
|
394
|
+
|
|
395
|
+
基于企业素材文件夹,AI 自动生成月度内容选题规划。
|
|
396
|
+
- 外贸:`https://www.siluzan.com/v3/foreign_trade/cso/planning`
|
|
397
|
+
- 内贸:`https://www.siluzan.com/v3/domestic_trade/cso/planning`
|
|
398
|
+
|
|
399
|
+
**使用场景:** 用户要规划下个月发布内容时启用。
|
|
400
|
+
|
|
401
|
+
**规划参数(引导用户逐项填写):**
|
|
402
|
+
- 选择企业/品牌(对应素材文件夹)
|
|
403
|
+
- 规划月份
|
|
404
|
+
- 内容类型:贴文 / 视频
|
|
405
|
+
- 发布频率(每周/每月 X 次)
|
|
406
|
+
- 营销目标、重点产品、目标市场、重要事件、内容风格
|
|
407
|
+
|
|
408
|
+
**生成结果:** 包含贴文计划(postItems)和视频计划(videoItems),每条含选题方向、内容形式、推荐话题等;支持导出为 TXT 或 PDF。
|
|
409
|
+
|
|
410
|
+
**任务状态:** `pending`(排队)→ `running`(AI 生成中)→ `completed` / `failed`
|
|
411
|
+
|
|
412
|
+
### 账号体检
|
|
413
|
+
|
|
414
|
+
AI 对媒体账号进行诊断分析,生成改进建议报告。
|
|
415
|
+
- 外贸:`https://www.siluzan.com/v3/foreign_trade/cso/check`
|
|
416
|
+
- 内贸:`https://www.siluzan.com/v3/domestic_trade/cso/check`
|
|
417
|
+
|
|
418
|
+
> **注意:** 体检有额度限制,用完需联系管理员。
|
|
419
|
+
|
|
420
|
+
### 企业词库
|
|
421
|
+
|
|
422
|
+
管理品牌词、专业词汇,辅助文案生成时保持用词一致。
|
|
423
|
+
- 外贸:`https://www.siluzan.com/v3/foreign_trade/cso/words`
|
|
424
|
+
- 内贸:`https://www.siluzan.com/v3/domestic_trade/cso/words`
|
|
425
|
+
|
|
426
|
+
---
|
|
427
|
+
|
|
428
|
+
## 数据分析功能
|
|
429
|
+
|
|
430
|
+
| 模块 | 外贸地址 | 内贸地址 | 功能 |
|
|
431
|
+
|------|---------|---------|------|
|
|
432
|
+
| 工作数据 | `…/foreign_trade/cso/Workdata` | `…/domestic_trade/cso/Workdata` | 多账号作品数据聚合(播放量/点赞/评论/分享),支持趋势图,可导出 Excel |
|
|
433
|
+
| 账号数据 | `…/foreign_trade/cso/accountdata` | `…/domestic_trade/cso/accountdata` | 单账号粉丝增长、主页访问趋势分析 |
|
|
434
|
+
| 运营报表 | `…/foreign_trade/cso/table` | `…/domestic_trade/cso/table` | 多账号数据汇总、粉丝受众分析、话题词云,支持 PDF 导出 |
|
|
435
|
+
|
|
436
|
+
> 表中 `…` 均代表 `https://www.siluzan.com/v3`。
|
|
437
|
+
|
|
438
|
+
---
|
|
439
|
+
|
|
440
|
+
## 私信自动处理(AI 核心工作流)
|
|
441
|
+
|
|
442
|
+
> **⚠️ AI 行为要求:** 每次处理前先向用户确认回复风格和策略;对于无法判断意图的消息(如退款投诉、订单纠纷),停止并列出内容请用户决策,不要擅自回复。
|
|
443
|
+
|
|
444
|
+
### 前置:获取账号信息
|
|
445
|
+
|
|
446
|
+
私信命令都需要账号 ID(`mediaCustomerId`)和平台类型(`mediaType`),先获取账号列表:
|
|
447
|
+
|
|
448
|
+
```bash
|
|
449
|
+
siluzan-cso list-accounts # 外贸账号
|
|
450
|
+
siluzan-cso list-accounts --domestic # 内贸账号(抖音等)
|
|
451
|
+
```
|
|
452
|
+
|
|
453
|
+
记录输出中每个账号的 `mediaCustomerId`(账号 ID)和 `mediaAccountType`(平台类型)。
|
|
454
|
+
|
|
455
|
+
---
|
|
456
|
+
|
|
457
|
+
### Step 1:查询未读会话
|
|
458
|
+
|
|
459
|
+
```bash
|
|
460
|
+
# 自动翻页拉取全部未读(上限 500 条,满足绝大多数场景)
|
|
461
|
+
siluzan-cso letter sessions -a <mediaCustomerId> --unread-only
|
|
462
|
+
|
|
463
|
+
# 内贸(抖音)
|
|
464
|
+
siluzan-cso letter sessions -a <mediaCustomerId> --domestic --unread-only
|
|
465
|
+
|
|
466
|
+
# 未读数量很多时,按批分组输出(建议 20-30,避免 AI 上下文溢出)
|
|
467
|
+
siluzan-cso letter sessions -a <mediaCustomerId> --unread-only --batch-size 20
|
|
468
|
+
```
|
|
469
|
+
|
|
470
|
+
**若会话数量极多(超过 500),命令会输出 `nextCursor` 值,继续处理:**
|
|
471
|
+
|
|
472
|
+
```bash
|
|
473
|
+
siluzan-cso letter sessions -a <mediaCustomerId> --unread-only --cursor <nextCursor>
|
|
474
|
+
```
|
|
475
|
+
|
|
476
|
+
输出包含:每个会话的 `userId`、用户昵称、未读消息数、最新消息预览。
|
|
477
|
+
|
|
478
|
+
---
|
|
479
|
+
|
|
480
|
+
### Step 2:读取消息记录
|
|
481
|
+
|
|
482
|
+
对每个有未读的会话,读取完整对话历史(最新 20 条,时间由旧到新):
|
|
483
|
+
|
|
484
|
+
```bash
|
|
485
|
+
siluzan-cso letter messages -a <mediaCustomerId> -u <userId>
|
|
486
|
+
|
|
487
|
+
# 内贸
|
|
488
|
+
siluzan-cso letter messages -a <mediaCustomerId> -u <userId> --domestic
|
|
489
|
+
```
|
|
490
|
+
|
|
491
|
+
命令末尾会输出"回复所需参数"JSON,其中包含抖音平台需要的 `msg_id` 和 `conversation_id`。
|
|
492
|
+
|
|
493
|
+
---
|
|
494
|
+
|
|
495
|
+
### Step 3:判断意图并生成回复内容
|
|
496
|
+
|
|
497
|
+
根据对话内容,AI 判断合适的回复方向:
|
|
498
|
+
|
|
499
|
+
| 消息类型 | 处理方式 |
|
|
500
|
+
|---------|---------|
|
|
501
|
+
| 产品咨询 | 基于品牌信息给出清晰回答 |
|
|
502
|
+
| 物流/发货询问 | 告知查询方式,不作超出权限的承诺 |
|
|
503
|
+
| 打招呼 / 闲聊 | 友好简短回复,保持品牌调性 |
|
|
504
|
+
| 退款 / 投诉 / 纠纷 | **停止,列出消息内容请用户决策** |
|
|
505
|
+
| 无法判断 | **停止,告知用户并请示回复方向** |
|
|
506
|
+
|
|
507
|
+
**24 小时限制:** 若用户最后一条消息距今超过 24 小时,该会话不可回复(平台限制),跳过并告知用户。
|
|
508
|
+
|
|
509
|
+
---
|
|
510
|
+
|
|
511
|
+
### Step 4:发送回复
|
|
512
|
+
|
|
513
|
+
```bash
|
|
514
|
+
# 外贸(Facebook / Instagram)
|
|
515
|
+
siluzan-cso letter reply \
|
|
516
|
+
-a <mediaCustomerId> \
|
|
517
|
+
-u <userId> \
|
|
518
|
+
-m Facebook \
|
|
519
|
+
--text "您好!感谢您的消息,..."
|
|
520
|
+
|
|
521
|
+
# 内贸(抖音)—— 建议携带 msg_id 和 conv_id(来自 Step 2 末尾输出)
|
|
522
|
+
siluzan-cso letter reply \
|
|
523
|
+
-a <mediaCustomerId> \
|
|
524
|
+
-u <userId> \
|
|
525
|
+
-m Douyin \
|
|
526
|
+
--text "您好!感谢您的消息,..." \
|
|
527
|
+
--msg-id <server_message_id> \
|
|
528
|
+
--conv-id <conversation_short_id> \
|
|
529
|
+
--domestic
|
|
530
|
+
```
|
|
531
|
+
|
|
532
|
+
**参数速查:**
|
|
533
|
+
|
|
534
|
+
| 参数 | 来源 |
|
|
535
|
+
|------|------|
|
|
536
|
+
| `-a <mediaCustomerId>` | `list-accounts` 输出的 `mediaCustomerId` |
|
|
537
|
+
| `-u <userId>` | `letter sessions` 输出的 `userId` |
|
|
538
|
+
| `-m <mediaAccountType>` | `list-accounts` 输出的 `mediaAccountType`(如 `Douyin`、`Facebook`、`Instagram`) |
|
|
539
|
+
| `--msg-id` / `--conv-id` | `letter messages` 末尾输出的"回复所需参数"JSON(抖音平台建议携带) |
|
|
540
|
+
| `--domestic` | 内贸账号(抖音)必须加此参数 |
|
|
541
|
+
|
|
542
|
+
发送成功后命令自动将该会话标记为已读。
|
|
543
|
+
|
|
544
|
+
---
|
|
545
|
+
|
|
546
|
+
### Step 5:处理完成汇报
|
|
547
|
+
|
|
548
|
+
处理完所有未读会话后向用户汇报:
|
|
549
|
+
- 共处理了哪些账号、多少个会话
|
|
550
|
+
- 已回复哪些(附回复内容摘要)
|
|
551
|
+
- 跳过哪些(原因:超 24 小时 / 需用户介入 / 图片/视频消息需在 Web 处理)
|
|
552
|
+
|
|
553
|
+
---
|
|
554
|
+
|
|
555
|
+
### 限制与注意事项
|
|
556
|
+
|
|
557
|
+
| 限制 | 说明 |
|
|
558
|
+
|------|------|
|
|
559
|
+
| 24 小时窗口 | 只能回复用户 **24 小时内**的消息;超时发送会收到 status=2 错误,命令会有明确提示 |
|
|
560
|
+
| 仅支持文字回复 | CLI 当前只能发文字;图片回复请在 CSO Web(`…/cso/letter`)操作 |
|
|
561
|
+
| 会话分页 | `--unread-only` 自动翻页聚合全部未读(上限 500 条);全量列表每次返回 20 条,通过 `--cursor` 翻页 |
|
|
562
|
+
| 消息记录 | 每次最多返回 20 条历史消息;更早的历史请在 CSO Web 查看 |
|
|
563
|
+
| 图片/视频消息 | `letter messages` 显示 `[图片消息]` / `[视频消息]`,无法看到内容,需在 Web 查看后再决定如何回复 |
|
|
564
|
+
| 内贸智能自动回复 | 关键词触发自动回复需在 CSO Web 界面(`…/domestic_trade/cso/interaction`)配置,与本 CLI 无关 |
|
|
565
|
+
|
|
566
|
+
---
|
|
567
|
+
|
|
568
|
+
## 评论与私信(Web 界面)
|
|
569
|
+
|
|
570
|
+
### 评论管理
|
|
571
|
+
|
|
572
|
+
- 外贸:`https://www.siluzan.com/v3/foreign_trade/cso/comment`
|
|
573
|
+
- 内贸:`https://www.siluzan.com/v3/domestic_trade/cso/comment`
|
|
574
|
+
|
|
575
|
+
功能:聚合多平台评论、按账号/平台/关键词筛选、批量回复、AI 翻译评论内容。
|
|
576
|
+
|
|
577
|
+
### 私信管理(Web 界面)
|
|
578
|
+
|
|
579
|
+
- 外贸:`https://www.siluzan.com/v3/foreign_trade/cso/letter`
|
|
580
|
+
- 内贸:`https://www.siluzan.com/v3/domestic_trade/cso/letter`
|
|
581
|
+
|
|
582
|
+
适用场景:查看图片/视频消息内容、发送图片回复、处理 20 条以外的历史消息。
|
|
583
|
+
|
|
584
|
+
### 智能互动(仅内贸/抖音)
|
|
585
|
+
|
|
586
|
+
- 内贸:`https://www.siluzan.com/v3/domestic_trade/cso/interaction`
|
|
587
|
+
|
|
588
|
+
功能:配置新关注用户的私信欢迎语、关键词触发自动回复规则。私信功能仅限抖音认证企业号及员工号。
|
|
589
|
+
|
|
590
|
+
---
|
|
591
|
+
|
|
592
|
+
## 视频搬家
|
|
593
|
+
|
|
594
|
+
将已发布视频从一个平台迁移到另一个平台(如 TikTok → YouTube)。
|
|
595
|
+
- 外贸:`https://www.siluzan.com/v3/foreign_trade/cso/relocation`
|
|
596
|
+
- 内贸:`https://www.siluzan.com/v3/domestic_trade/cso/relocation`
|
|
597
|
+
|
|
598
|
+
功能:
|
|
599
|
+
- 选择要搬家的视频列表
|
|
600
|
+
- 提交搬家任务(后台异步执行)
|
|
601
|
+
- 搬家记录(外贸:`…/foreign_trade/cso/MovingRecord`,内贸:`…/domestic_trade/cso/MovingRecord`)查看状态
|
|
602
|
+
|
|
603
|
+
---
|
|
604
|
+
|
|
605
|
+
## 灵感搜集
|
|
606
|
+
|
|
607
|
+
搜索竞品或行业热门内容,作为内容创作参考。
|
|
608
|
+
- 外贸:`https://www.siluzan.com/v3/foreign_trade/cso/web-search`
|
|
609
|
+
- 内贸:`https://www.siluzan.com/v3/domestic_trade/cso/web-search`
|
|
610
|
+
|
|
611
|
+
功能:
|
|
612
|
+
- 按平台、时长范围、发布时间筛选排序
|
|
613
|
+
- 收藏/隐藏感兴趣的帖子
|
|
614
|
+
- AI 识别视频文案(`getstt`)
|
|
615
|
+
|
|
616
|
+
---
|
|
617
|
+
|
|
618
|
+
## 更多资料
|
|
619
|
+
|
|
620
|
+
- CSO 发布流程详细说明:[reference-cso-publish.md](reference-cso-publish.md)
|
|
621
|
+
- API 端点说明:[reference-api.md](reference-api.md)
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"contentType": 2,
|
|
3
|
+
"taskName": "图文批量发布",
|
|
4
|
+
"failureNotification": false,
|
|
5
|
+
"isDomesticTrade": false,
|
|
6
|
+
|
|
7
|
+
"posts": [
|
|
8
|
+
{
|
|
9
|
+
"title": "图文文案标题",
|
|
10
|
+
"description": "Facebook/Instagram 等平台描述",
|
|
11
|
+
"topics": ["话题X"],
|
|
12
|
+
|
|
13
|
+
"images": [
|
|
14
|
+
{
|
|
15
|
+
"imageUrl": "https://cdn.example.com/img1.jpg",
|
|
16
|
+
"imageName": "img1.jpg",
|
|
17
|
+
"imageSourceType": 1,
|
|
18
|
+
"width": 1080,
|
|
19
|
+
"height": 1080
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
|
|
23
|
+
"accounts": [
|
|
24
|
+
{
|
|
25
|
+
"entityId": "从 siluzan-cso list-accounts 获取",
|
|
26
|
+
"mediaAccountType": "Instagram",
|
|
27
|
+
"mediaCustomerId": "xxx",
|
|
28
|
+
"mediaCustomerName": "我的 Instagram",
|
|
29
|
+
"externalMediaAccountTokenId": ""
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
|
|
33
|
+
"publishMode": "scheduled",
|
|
34
|
+
"publishAt": "2026-03-20T10:00:00+08:00"
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
}
|