@yixiaoermail/cli 3.1.0
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 +25 -0
- package/bin/yxer.js +74 -0
- package/dist/yxer-darwin-amd64 +0 -0
- package/dist/yxer-darwin-arm64 +0 -0
- package/dist/yxer-linux-amd64 +0 -0
- package/dist/yxer-linux-arm64 +0 -0
- package/dist/yxer-windows-amd64.exe +0 -0
- package/dist/yxer-windows-arm64.exe +0 -0
- package/package.json +23 -0
- package/skills/yixiaoer/QUICKSTART.md +265 -0
- package/skills/yixiaoer/SKILL.md +70 -0
- package/skills/yixiaoer/assets/yixiaoer.png +0 -0
- package/skills/yixiaoer/plugin.json +21 -0
- package/skills/yixiaoer/references/cli/command-reference.md +212 -0
- package/skills/yixiaoer/references/cli/skill-install.md +65 -0
- package/skills/yixiaoer/references/cli-install-uninstall.md +196 -0
- package/skills/yixiaoer/references/domains/accounts-and-env.md +37 -0
- package/skills/yixiaoer/references/domains/draft-and-material.md +29 -0
- package/skills/yixiaoer/references/domains/install-and-sync.md +37 -0
- package/skills/yixiaoer/references/domains/publish.md +75 -0
- package/skills/yixiaoer/references/domains/troubleshooting.md +30 -0
- package/skills/yixiaoer/references/execution-standard.md +144 -0
- package/skills/yixiaoer/references/get-account-overviews.md +56 -0
- package/skills/yixiaoer/references/get-challenges.md +14 -0
- package/skills/yixiaoer/references/get-collections.md +34 -0
- package/skills/yixiaoer/references/get-content-overviews.md +59 -0
- package/skills/yixiaoer/references/get-friends.md +9 -0
- package/skills/yixiaoer/references/get-games.md +39 -0
- package/skills/yixiaoer/references/get-goods.md +42 -0
- package/skills/yixiaoer/references/get-groups.md +35 -0
- package/skills/yixiaoer/references/get-hot-events.md +14 -0
- package/skills/yixiaoer/references/get-locations.md +48 -0
- package/skills/yixiaoer/references/get-miniapps.md +38 -0
- package/skills/yixiaoer/references/get-music-categories.md +41 -0
- package/skills/yixiaoer/references/get-music.md +67 -0
- package/skills/yixiaoer/references/get-publish-activities.md +40 -0
- package/skills/yixiaoer/references/get-publish-categories.md +62 -0
- package/skills/yixiaoer/references/get-sync-apps.md +14 -0
- package/skills/yixiaoer/references/get-topics.md +13 -0
- package/skills/yixiaoer/references/go-live-process.md +168 -0
- package/skills/yixiaoer/references/keyword-reference.md +113 -0
- package/skills/yixiaoer/references/material-resource.md +89 -0
- package/skills/yixiaoer/references/platform-doc-maintenance.md +33 -0
- package/skills/yixiaoer/references/platform.md +61 -0
- package/skills/yixiaoer/references/platforms/article/acfun.md +90 -0
- package/skills/yixiaoer/references/platforms/article/aiqiyi.md +56 -0
- package/skills/yixiaoer/references/platforms/article/baijiahao.md +94 -0
- package/skills/yixiaoer/references/platforms/article/bilibili.md +88 -0
- package/skills/yixiaoer/references/platforms/article/chejiahao.md +81 -0
- package/skills/yixiaoer/references/platforms/article/csdn.md +86 -0
- package/skills/yixiaoer/references/platforms/article/dayuhao.md +78 -0
- package/skills/yixiaoer/references/platforms/article/douban.md +62 -0
- package/skills/yixiaoer/references/platforms/article/douyin.md +106 -0
- package/skills/yixiaoer/references/platforms/article/index.md +157 -0
- package/skills/yixiaoer/references/platforms/article/jianshu.md +58 -0
- package/skills/yixiaoer/references/platforms/article/kuaichuanhao.md +78 -0
- package/skills/yixiaoer/references/platforms/article/qiehao.md +78 -0
- package/skills/yixiaoer/references/platforms/article/souhuhao.md +75 -0
- package/skills/yixiaoer/references/platforms/article/toutiaohao.md +78 -0
- package/skills/yixiaoer/references/platforms/article/wangyihao.md +79 -0
- package/skills/yixiaoer/references/platforms/article/weixingongzhonghao.md +135 -0
- package/skills/yixiaoer/references/platforms/article/xinlangweibo.md +75 -0
- package/skills/yixiaoer/references/platforms/article/xueqiuhao.md +73 -0
- package/skills/yixiaoer/references/platforms/article/yichehao.md +92 -0
- package/skills/yixiaoer/references/platforms/article/yidianhao.md +76 -0
- package/skills/yixiaoer/references/platforms/article/zhihu.md +75 -0
- package/skills/yixiaoer/references/platforms/get-locations.md +5 -0
- package/skills/yixiaoer/references/platforms/imageText/baijiahao.md +91 -0
- package/skills/yixiaoer/references/platforms/imageText/douyin.md +111 -0
- package/skills/yixiaoer/references/platforms/imageText/index.md +116 -0
- package/skills/yixiaoer/references/platforms/imageText/kuaishou.md +106 -0
- package/skills/yixiaoer/references/platforms/imageText/shipinhao.md +125 -0
- package/skills/yixiaoer/references/platforms/imageText/toutiaohao.md +76 -0
- package/skills/yixiaoer/references/platforms/imageText/weixinshipinhao.md +7 -0
- package/skills/yixiaoer/references/platforms/imageText/xiaohongshu.md +88 -0
- package/skills/yixiaoer/references/platforms/imageText/xinlangweibo.md +77 -0
- package/skills/yixiaoer/references/platforms/imageText/zhihu.md +92 -0
- package/skills/yixiaoer/references/platforms/index.md +20 -0
- package/skills/yixiaoer/references/platforms/video/acfun.md +82 -0
- package/skills/yixiaoer/references/platforms/video/aiqiyi.md +89 -0
- package/skills/yixiaoer/references/platforms/video/baijiahao.md +89 -0
- package/skills/yixiaoer/references/platforms/video/bilibili-open.md +87 -0
- package/skills/yixiaoer/references/platforms/video/bilibili.md +80 -0
- package/skills/yixiaoer/references/platforms/video/chejiahao.md +63 -0
- package/skills/yixiaoer/references/platforms/video/dayuhao.md +89 -0
- package/skills/yixiaoer/references/platforms/video/dewu.md +80 -0
- package/skills/yixiaoer/references/platforms/video/douyin.md +143 -0
- package/skills/yixiaoer/references/platforms/video/duoduoshipin.md +64 -0
- package/skills/yixiaoer/references/platforms/video/fengwang.md +81 -0
- package/skills/yixiaoer/references/platforms/video/index.md +165 -0
- package/skills/yixiaoer/references/platforms/video/kuaishou-open.md +63 -0
- package/skills/yixiaoer/references/platforms/video/kuaishou.md +77 -0
- package/skills/yixiaoer/references/platforms/video/meipai.md +79 -0
- package/skills/yixiaoer/references/platforms/video/meiyou.md +59 -0
- package/skills/yixiaoer/references/platforms/video/pipixia.md +58 -0
- package/skills/yixiaoer/references/platforms/video/qiehao.md +91 -0
- package/skills/yixiaoer/references/platforms/video/shipinhao.md +95 -0
- package/skills/yixiaoer/references/platforms/video/souhuhao.md +91 -0
- package/skills/yixiaoer/references/platforms/video/souhushipin.md +64 -0
- package/skills/yixiaoer/references/platforms/video/tengxunshipin.md +63 -0
- package/skills/yixiaoer/references/platforms/video/toutiaohao.md +66 -0
- package/skills/yixiaoer/references/platforms/video/wangyihao.md +93 -0
- package/skills/yixiaoer/references/platforms/video/weishi.md +61 -0
- package/skills/yixiaoer/references/platforms/video/xiaohongshu.md +133 -0
- package/skills/yixiaoer/references/platforms/video/xiaohongshushop.md +92 -0
- package/skills/yixiaoer/references/platforms/video/xinlangweibo.md +79 -0
- package/skills/yixiaoer/references/platforms/video/yichehao.md +61 -0
- package/skills/yixiaoer/references/platforms/video/yidianhao.md +85 -0
- package/skills/yixiaoer/references/platforms/video/zhihu.md +85 -0
- package/skills/yixiaoer/references/proxy-management.md +68 -0
- package/skills/yixiaoer/references/query-accounts.md +85 -0
- package/skills/yixiaoer/references/save-draft.md +75 -0
- package/skills/yixiaoer/references/topic-tags.md +139 -0
- package/skills/yixiaoer/references/troubleshooting-guide.md +105 -0
- package/skills/yixiaoer/references/upload-resource.md +59 -0
- package/skills/yixiaoer/references/usage-workflow.md +209 -0
- package/skills/yixiaoer/references/workflows/account-selection.md +38 -0
- package/skills/yixiaoer/references/workflows/common-rules.md +259 -0
- package/skills/yixiaoer/references/workflows/draft-workflow.md +44 -0
- package/skills/yixiaoer/references/workflows/local-vs-cloud.md +50 -0
- package/skills/yixiaoer/references/workflows/material-workflow.md +43 -0
- package/skills/yixiaoer/references/workflows/payload-sourcing.md +70 -0
- package/skills/yixiaoer/references/workflows/publish-article.md +68 -0
- package/skills/yixiaoer/references/workflows/publish-imageText.md +64 -0
- package/skills/yixiaoer/references/workflows/publish-troubleshooting.md +50 -0
- package/skills/yixiaoer/references/workflows/publish-video.md +65 -0
- package/skills/yixiaoer/references/yixiaoer-shared.md +95 -0
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
# YiXiaoEr Skill 严格执行标准 (Strict Execution Standard)
|
|
2
|
+
|
|
3
|
+
为了确保 蚁小二 (YiXiaoEr) 自动化技能在复杂 Agent 环境下的高可靠性、可追溯性以及版本一致性,所有调用者及技能维护者必须遵循本标准。
|
|
4
|
+
|
|
5
|
+
## 1. 版本控制与一致性 (Versioning & Consistency)
|
|
6
|
+
|
|
7
|
+
### 1.1 语义化版本
|
|
8
|
+
- 技能必须在 `skills/yixiaoer/SKILL.md` 的 frontmatter 中明确标注 `version`(遵循 SemVer 规范)。
|
|
9
|
+
- **执行要求**:Agent 在启动时**必须**校验环境中的技能版本是否符合预期(如 `>= 1.6.0`)。
|
|
10
|
+
|
|
11
|
+
### 1.2 物理一致性 (Integrity)
|
|
12
|
+
- 技能的核心逻辑(`cmd/`、`internal/`、`main.go`)不得在未修改版本号的情况下随意变动。
|
|
13
|
+
- 自动化流水线应建议生成 Hash 值进行对比。
|
|
14
|
+
|
|
15
|
+
## 2. 错误分类与标准码 (Standardized Error Codes)
|
|
16
|
+
|
|
17
|
+
为了准确区分“Agent 使用错误”与“后端系统错误”,所有输出的错误 JSON 必须包含 `errorCode` 字段:
|
|
18
|
+
|
|
19
|
+
| 错误代码 (errorCode) | 分类 | 触发场景 |
|
|
20
|
+
| :--- | :--- | :--- |
|
|
21
|
+
| `YIXIAOER_USAGE_ERR` | Agent 侧错误 | 参数缺失、JSON 格式错误、平台枚举值非法、资源未上传即发布。 |
|
|
22
|
+
| `YIXIAOER_REMOTE_ERR` | 远端 API 错误 | 蚁小二后端返回 4xx/5xx、API Key 失效、配额超限。 |
|
|
23
|
+
| `YIXIAOER_AUTH_ERR` | 鉴权错误 | 缺失 `YIXIAOER_API_KEY` 或 Key 无权访问特定接口。 |
|
|
24
|
+
| `YIXIAOER_ENV_ERR` | 环境错误 | CLI 二进制缺失、关键环境变量缺失、网络不通。 |
|
|
25
|
+
| `YIXIAOER_INTEGRITY_ERR` | 完整性错误 | 运行的代码与文档版本不一致。 |
|
|
26
|
+
|
|
27
|
+
## 3. 资源预处理标准 (Pre-processing Standard)
|
|
28
|
+
|
|
29
|
+
**核心约束:发布与上传必须物理分离**。
|
|
30
|
+
|
|
31
|
+
1. **先上传再引用**:严禁在 `publish` Payload 中直接使用外部原始 URL。必须通过 `upload` action 获取系统内部 `key` 后进行替换。
|
|
32
|
+
2. **ContentType 签名一致性**:获取预签名 URL 时声明的 `contentType` 必须与执行 PUT 上传时的 `Content-Type` Header **完全一致**。禁止自行猜测或随意留空,否则将导致 `SignatureDoesNotMatch` 错误。
|
|
33
|
+
3. **封面图 (Cover)**:视频内容的封面图必须同样经过 `upload` 流程。
|
|
34
|
+
4. **状态校验**:在上传统一资源后,建议通过 `material` 接口(若需要)将其同步至素材库以增加发布稳定性。
|
|
35
|
+
5. **素材库原子化标准 (Material Library Standard)**:
|
|
36
|
+
- **严禁一步到位**:当用户请求“上传到素材库”时,Agent **必须**执行两个物理步骤:
|
|
37
|
+
1. **upload**:先将资源上传至 OSS(推荐 `bucket: "material-library"`)并获得 resource key。
|
|
38
|
+
2. **material**:持有 resource key,调用逻辑将资源登记到素材库并获得素材 ID。
|
|
39
|
+
- **错误规避**:严禁只执行 `upload` 而不执行 `material` 登记,否则用户在网页端将无法看到该素材。
|
|
40
|
+
|
|
41
|
+
### 3.1 标准请求体兼容约定 (Standard Publish Request Compatibility)
|
|
42
|
+
|
|
43
|
+
- CLI 现已兼容“标准请求体”输入格式。推荐将共享资源放在 `publishArgs` 根级,例如 `video`、`images`、`cover`、`coverKey`、`content`。
|
|
44
|
+
- CLI 在执行 `validate` / `publish` 时,会在 `accountForms[]` 缺失对应资源字段时自动补齐:
|
|
45
|
+
- `publishArgs.video` -> `accountForms[i].video`
|
|
46
|
+
- `publishArgs.images` -> `accountForms[i].images`
|
|
47
|
+
- `publishArgs.cover` -> `accountForms[i].cover`
|
|
48
|
+
- `publishArgs.coverKey` -> `accountForms[i].coverKey`
|
|
49
|
+
- `publishArgs.content` -> `accountForms[i].contentPublishForm.content`
|
|
50
|
+
- 业务扩展字段如 `mediaId`、`platformName`、`publishContentId`、`fps`、`isAppContent` 会被 CLI 保留并原样透传,不参与额外业务改写。
|
|
51
|
+
- 命令层仍保持**单平台执行模型**:即使标准请求体本身可表达多平台,`yxer publish` 仍需按平台逐次调用。
|
|
52
|
+
|
|
53
|
+
## 4. 调用序列与检索规范 (Interaction Flow)
|
|
54
|
+
|
|
55
|
+
Agent 在执行任务时必须遵循以下“分级检索”逻辑:
|
|
56
|
+
|
|
57
|
+
1. **L1 技能入口检索**:读取 `skills/yixiaoer/SKILL.md` 确定 `action` 类型。
|
|
58
|
+
2. **L2 Domain / 索引检索**:在执行 `publish` 前,必须先读取对应 domain 与内容类型 `index.md`(如 `skills/yixiaoer/references/platforms/article/index.md`)确定 DTO 架构。
|
|
59
|
+
3. **L3 平台细化**:根据目标平台(如“抖音”),读取 `skills/yixiaoer/references/platforms/video/douyin.md` 对 `platformSettings` 进行深度补全。
|
|
60
|
+
4. **禁止跳级**:严禁在未读取 domain 与类型索引的情况下直接拼装平台参数。
|
|
61
|
+
5. **动态数据预查**:对于 `categories` (分类)、`tags` (标签)、`locations` (位置) 等动态字段,Agent **必须**先通过对应的查询 action 获取当前平台的合法值,严禁基于常识或过时缓存进行猜测。
|
|
62
|
+
|
|
63
|
+
## 5. 输出格式规范 (Output Schema)
|
|
64
|
+
|
|
65
|
+
脚本输出必须为严格的 JSON。
|
|
66
|
+
|
|
67
|
+
### 成功响应示例
|
|
68
|
+
```json
|
|
69
|
+
{
|
|
70
|
+
"success": true,
|
|
71
|
+
"action": "publish",
|
|
72
|
+
"version": "1.6.2",
|
|
73
|
+
"data": {
|
|
74
|
+
"task_set_id": "TS12345678"
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## 6. 错误处理与自检流程 (Error Handling & Self-Diagnosis)
|
|
80
|
+
|
|
81
|
+
当脚本执行失败并返回 `success: false` 时,Agent 或开发者**必须**按照以下顺序进行自检:
|
|
82
|
+
|
|
83
|
+
### 第零步:优先匹配避坑指南 (Step 0: Check Troubleshooting Guide)
|
|
84
|
+
- 在进行任何深度调试前,**必须首先查阅**:[🛡️ 蚁小二 Skill 避坑与故障排查手册](./troubleshooting-guide.md)。
|
|
85
|
+
- 检查出错现象是否符合手册中的“常见四大坑点”(版本、设备在线、表单架构、签名一致性)。如果匹配,直接按方案修正。
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
### 第一步:检查版本一致性 (Check Version)
|
|
89
|
+
- 检查当前运行环境中的 `skills/yixiaoer/SKILL.md` 版本号。
|
|
90
|
+
- 确认 Agent 使用的 API 调用逻辑是否与该版本匹配。
|
|
91
|
+
- **排查项**:是否因版本过低导致某些新增字段(如 `publishChannel`)未生效。
|
|
92
|
+
|
|
93
|
+
### 第二步:检查请求参数规范 (Check Parameters)
|
|
94
|
+
- 对比输出的 `details` 信息与 `skills/yixiaoer/references/` 下的 DTO 与平台定义。
|
|
95
|
+
- **重点排查项 (必填项校验)**:
|
|
96
|
+
- **封面图 (cover/covers)**:是否提供了有效的资源 key?
|
|
97
|
+
- **视频资源 (video)**:视频发布是否包含必填的视频 key、标题或分类?
|
|
98
|
+
- **平台特定字段**:如公众号的 `author`、抖音的 `is_public` 等。
|
|
99
|
+
- **重点排查项 (必填项校验)**:
|
|
100
|
+
- **分类与标签路径**:分类 (categories) 必须使用通过 `action: "categories"` 接口获取的**完整 `child` 路径数组**。严禁只填入末级 ID。
|
|
101
|
+
- **位置与话题**:如抖音的 POI 位置、话题等,必须通过对应的检索接口获取有效数据后果填入。
|
|
102
|
+
- **排查项**:检查必填字段是否遗漏、数据类型(String/Number)是否符合文档、平台枚举名称是否正确。
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
### 第三步:检查缓存与过期数据 (Check Cache & Stale Data)
|
|
106
|
+
- 检查是否存在过期的缓存文件(如旧的 Payload JSON、过时的资源 Key)。
|
|
107
|
+
- **资源上传专项排查**:在上传阶段如果出现 `SignatureDoesNotMatch` 错误,优先检查 `contentType` 定义是否与上传时的 Header **完全对齐**。Agent 在调用 `action: "upload-resource"` 时传入的 `contentType` 必须与后续 PUT 请求中的 `Content-Type` 字节级一致。
|
|
108
|
+
- **发布通道与代理校验**:
|
|
109
|
+
- 若执行发布任务返回“获取在线设备列表失败”或提示“客户端不在线”,原因为选择了 **本机发布 (publishChannel: 'local')** 但环境中未运行蚁小二客户端。建议保持客户端在线,或修改为 **云发布 (publishChannel: 'cloud')**。
|
|
110
|
+
- 若**云发布**返回“账号代理不存在”,原因为账号绑定的独立代理 (proxyId) 失效或该平台强制需要代理配置。Agent 应先检查账号的 `proxyId` 或 `kuaidailiArea` 是否设置,并提示用户通过 `update-account` 绑定新的代理。
|
|
111
|
+
- **执行逻辑**:如果怀疑使用了缓存导致的异常,必须清理相关临时文件并严格按照最新技能定义的流程重新执行(如重新执行 `upload` 流程)。
|
|
112
|
+
- **草稿处理逻辑 (Draft Selection)**:当涉及“草稿”时,Agent 必须通过语义判断用户是指 **“蚁小二内部草稿”** (action: save-draft) 还是 **“发布到平台草稿箱”** (action: publish + pubType: 0)。**若语义不明确,Agent 必须询问用户以确认,严禁在未明确用户意图时随意选取一种或默认执行。**
|
|
113
|
+
- **平台草稿兼容性补丁**:若用户指定“发布到平台草稿箱”,Agent 遵循以下执行链:
|
|
114
|
+
1. **pubType 优先**:若平台定义了 `pubType`,使用 `pubType: 0`。
|
|
115
|
+
2. **visibleType 次之**:若无 `pubType` 但有 `visibleType` (或 `status`/`privacy`),将其设为 **`1` (私密)**。对应的,`0` 表示公开。
|
|
116
|
+
3. **不支持告知**:若均无定义,则判定为不支持,必须提示用户。
|
|
117
|
+
### 6.4 分类路径完整性校验 (Category Path Integrity)
|
|
118
|
+
- **核心逻辑**:对于支持多级结构的分类(如 B 站视频分区),Agent 在填充表单时**必须**使用完整的 `child` 路径数组。
|
|
119
|
+
- **数据获取**:直接透传从 `action: "categories"` 结果中提取的 `child` 字段。
|
|
120
|
+
- **执行动作**:Agent 选中目标分类后,应直接将该对象的整个 `child` 数组填入 `contentPublishForm.category` 或对应字段。
|
|
121
|
+
- **严禁**:严禁只填入单一的 `yixiaoerId` 或末级分类名。
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## 7. 账号有效性校验 (Account Validity)
|
|
126
|
+
- **校验标准**:Agent 在执行 `publish` 前,其选择的账号 `status` 必须为 `1` (有效)。
|
|
127
|
+
- **严禁执行**:若账号 `status` 为 `2` (失效),Agent **严禁**尝试执行发布任务,应立即提示用户账号需要重新登录或处理。
|
|
128
|
+
- **数据来源**:账号状态必须通过 `action: "accounts"` 接口实时获取,不得依赖过期的历史数据。
|
|
129
|
+
|
|
130
|
+
## 8. 避坑指南:常见失败场景 (Common Failure Scenarios)
|
|
131
|
+
|
|
132
|
+
| 场景 | 原因分析 | 改进建议 |
|
|
133
|
+
| :--- | :--- | :--- |
|
|
134
|
+
| **版本不支持该功能** | 技能版本号过低,未包含新增动作或字段。 | 检查 `skills/yixiaoer/SKILL.md` 版本,提示用户升级或回退逻辑。 |
|
|
135
|
+
| **获取在线设备失败** | 选用了“本机发布”但客户端未开启或未登录。 | 提示用户:**“蚁小二客户端需要保持在线”**,或者建议改为 **“云发布”** (publishChannel: 'cloud')。 |
|
|
136
|
+
| **发布失败:表单错误** | Agent 生成的 JSON 结构与 `skills/yixiaoer/references/` 下的 DTO 架构不匹配。 | **强制核对**:Agent 必须校验传入表单是否符合对应平台的文档要求。 |
|
|
137
|
+
| **任务卡在发布中/待发布** | 虽然 API 接收了请求,但表单内容不合规导致引擎挂起。 | **规则校验**:检查表单是否严格按照文档规则填入,特别是 `raw` 数据透传。 |
|
|
138
|
+
| **发布失败:必填项缺失** | 忽略了平台要求的必填核心字段(如标题、分类)。 | **必填项自检**:检查文档中标记为“必填”的字段是否已全部填入。 |
|
|
139
|
+
| **上传失败/签名不匹配** | `contentType` 在获取上传地址与执行 PUT 时不一致。 | **一致性校验**:必须确保 `action: "upload-resource"` 时传入的 `contentType` 与实际上传一致。 |
|
|
140
|
+
| **云发布报错:账号代理不存在** | 账号绑定的独立代理 (`proxyId`) 已失效,或云发布环境未配置代理。 | **修复建议**:通过 `update-account` 为账号设置 `kuaidailiArea`(内置代理)或有效的 `proxyId`(独立代理)。 |
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
*本标准由 OpenClaw 架构组制定。违反本标准导致的发布失败或数据异常将由调用者承担相应责任。*
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# 获取账号数据概览 (Get Account Overviews V2)
|
|
2
|
+
|
|
3
|
+
获取当前团队下各账号的综合表现概览。主要用于账号矩阵的权重分析、整体粉丝量监控及核心指标汇总。
|
|
4
|
+
|
|
5
|
+
## 触发场景 (Trigger)
|
|
6
|
+
- **意图辨析**:当用户需要宏观查看某个平台下的“账号全景图”,而不是单个作品的数据时。例如:分析团队资产总量、对比部门/负责人之间的账号表现差异。
|
|
7
|
+
- **典型提示词**:
|
|
8
|
+
- “汇总一下我旗下所有抖音号的粉丝量”
|
|
9
|
+
- “我的视频号账号最近表现如何?”
|
|
10
|
+
- “查看张三负责的账号的数据看板”
|
|
11
|
+
|
|
12
|
+
## 参数定义 (Parameters)
|
|
13
|
+
|
|
14
|
+
### 参数列表 (Payload Properties)
|
|
15
|
+
|
|
16
|
+
| 字段名 | 类型 | 是否必填 | 描述 |
|
|
17
|
+
| :--- | :--- | :--- | :--- |
|
|
18
|
+
| `action` | `string` | **是** | 固定值:`account-overviews` |
|
|
19
|
+
| `platform` | `string` | **是** | 指定查询某个平台。见 [平台定义](./platform.md)。 |
|
|
20
|
+
| `name` | `string` | 否 | 按照账号昵称模糊查询。 |
|
|
21
|
+
| `group` | `string` | 否 | 按照分组名称查询。 |
|
|
22
|
+
| `loginStatus` | `number` | 否 | 账号状态 (0未登录, 1成功, 2过期, 3失败)。 |
|
|
23
|
+
| `memberIds` | `string[]` | 否 | 负责人成员 ID 数组 (ObjectId)。 |
|
|
24
|
+
| `page` | `number` | 否 | 当前页码,默认 `1`。 |
|
|
25
|
+
| `size` | `number` | 否 | 每页数量,默认 `10`。 |
|
|
26
|
+
|
|
27
|
+
## 执行逻辑 (Logic Flow)
|
|
28
|
+
1. **维度确定**:识别查询的目标平台(`platform` 为必填)。
|
|
29
|
+
2. **权限过滤**:若提到特定人员,解析并注入其 `memberIds`。
|
|
30
|
+
3. **参数装配**:构造 `action: "account-overviews"` 及分页参数。
|
|
31
|
+
4. **指令执行**:当前能力正在迁移到 `yxer` CLI,本文档不再推荐脚本直调。
|
|
32
|
+
5. **看板交付**:提取 `overviewData` 中的总粉丝数、总播放量等关键指标反馈给用户。
|
|
33
|
+
|
|
34
|
+
## 返回结果说明 (Response Details)
|
|
35
|
+
|
|
36
|
+
返回包含账号表现信息列表的对象。
|
|
37
|
+
|
|
38
|
+
### 复杂对象:data.data[i] (账号概览对象)
|
|
39
|
+
|
|
40
|
+
| 字段 | 类型 | 描述 |
|
|
41
|
+
| :--- | :--- | :--- |
|
|
42
|
+
| `platformAccountId` | `string` | 媒体账号 ID |
|
|
43
|
+
| `platformAvatar` | `string` | 账号头像地址 |
|
|
44
|
+
| `platformAccountName` | `string` | 账号昵称 |
|
|
45
|
+
| `principalName` | `string` | 当前负责成员名 |
|
|
46
|
+
| `overviewData` | `object` | 统计数据总计。包含 `fansTotal`, `playTotal`, `commentsTotal`, `likesTotal` 等。 |
|
|
47
|
+
|
|
48
|
+
## 调用指令 (Command)
|
|
49
|
+
|
|
50
|
+
```text
|
|
51
|
+
当前版本尚未提供独立 `yxer` 子命令。
|
|
52
|
+
本页仅保留字段结构说明,执行时应优先扩展 Go CLI,而不是寻找旧脚本入口。
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## 注意事项
|
|
56
|
+
- **总量聚合**:账号数据 V2 提供的是总量的统计概览,适合查看整体情况。
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# 获取挑战/话题列表 (Get Challenges)
|
|
2
|
+
|
|
3
|
+
获取平台当前进行的挑战活动或推荐的话题列表。
|
|
4
|
+
|
|
5
|
+
## 1. 调用指令
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
yxer query challenges YOUR_ACCOUNT_ID --query 搜索词 --json
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 2. 返回数据结构
|
|
12
|
+
|
|
13
|
+
返回 `Category` 数组。发布时必须直接使用 `yxer query challenges` 返回的完整对象,不能只保留 ID、名称或 `raw` 的局部字段。
|
|
14
|
+
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# 获取合集列表 (Get Collections)
|
|
2
|
+
|
|
3
|
+
获取账号已创建的合集列表。主要用于抖音、今日头条等支持合集的平台。
|
|
4
|
+
|
|
5
|
+
## 调用指令 (Command)
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
yxer query collections ACCOUNT_ID --json
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 参数列表 (Payload Properties)
|
|
12
|
+
|
|
13
|
+
| 字段名 | 类型 | 是否必填 | 说明 |
|
|
14
|
+
| :--- | :--- | :--- | :--- |
|
|
15
|
+
| `account_id` | `string` | **是** | 蚁小二账号 ID (32位十六进制) |
|
|
16
|
+
|
|
17
|
+
返回一个 `Category` 数组。发布时必须直接使用 `yxer query collections` 返回的完整对象作为 `collection` 参数传递给发布流程,不能只保留 ID、名称或 `raw` 的局部字段。
|
|
18
|
+
|
|
19
|
+
```json
|
|
20
|
+
[
|
|
21
|
+
{
|
|
22
|
+
"yixiaoerId": "col_123",
|
|
23
|
+
"yixiaoerName": "美食系列",
|
|
24
|
+
"raw": { ... }
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## CLI / 后端逻辑
|
|
30
|
+
|
|
31
|
+
- **CLI 命令**: `yxer query collections <account_id> [--type video|article] [--json]`
|
|
32
|
+
- **功能**: 封装蚁小二标准化合集查询接口 (`GET /platform-accounts/{platformAccountId}/collections`)。
|
|
33
|
+
- **参数映射**: 将 `account_id` 映射为 URL 路径变量,将 `type` 映射为 `publishType` 查询参数。
|
|
34
|
+
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# 获取作品数据 (Get Content Overviews)
|
|
2
|
+
|
|
3
|
+
获取当前团队下各账号发布的作品数据统计信息。
|
|
4
|
+
|
|
5
|
+
## 触发场景 (Trigger)
|
|
6
|
+
- **意图辨析**:当用户需要查询、分析或导出已发布内容(视频、文章等)的传播数据(阅读量、点赞量、转发量等)时触发。
|
|
7
|
+
- **典型提示词**:
|
|
8
|
+
- “我的抖音视频播放量怎么样了?”
|
|
9
|
+
- “查询最近 7 天所有账号的作品数据”
|
|
10
|
+
- “看看特定账号 A 的点赞情况”
|
|
11
|
+
- “由于最近流量下滑,查询表现最差的作品”
|
|
12
|
+
|
|
13
|
+
## 参数定义 (Parameters)
|
|
14
|
+
|
|
15
|
+
### 参数列表 (Payload Properties)
|
|
16
|
+
|
|
17
|
+
| 字段名 | 类型 | 是否必填 | 描述 |
|
|
18
|
+
| :--- | :--- | :--- | :--- |
|
|
19
|
+
| `action` | `string` | **是** | 固定值:`content-overviews` |
|
|
20
|
+
| `platform` | `string` | 否 | 指定查询某个平台。见 [平台定义](./platform.md)。 |
|
|
21
|
+
| `platformAccountId` | `string` | 否 | 媒体账号 ID (ObjectId)。 |
|
|
22
|
+
| `publishUserId` | `string` | 否 | 发布人 ID (ObjectId)。 |
|
|
23
|
+
| `type` | `string` | 否 | 作品类型:`article` (文章), `video` (视频), `miniVideo` (短视频), `dynamic` (动态)。 |
|
|
24
|
+
| `title` | `string` | 否 | 作品标题,支持模糊查询。 |
|
|
25
|
+
| `publishStartTime` | `number` | 否 | 发布时间范围开始(Unix 时间戳,毫秒)。 |
|
|
26
|
+
| `publishEndTime` | `number` | 否 | 发布时间范围结束(Unix 时间戳,毫秒)。 |
|
|
27
|
+
| `page` | `number` | 否 | 当前页码,默认 `1`。 |
|
|
28
|
+
| `size` | `number` | 否 | 每页数量,默认 `10`。 |
|
|
29
|
+
|
|
30
|
+
## 执行逻辑 (Logic Flow)
|
|
31
|
+
1. **需求解析**:识别用户查询的时间范围、平台及作品类型意图。
|
|
32
|
+
2. **时间处理**:将相对时间(如“最近7天”)转换为 Unix 毫秒时间戳注入 `publishStartTime`。
|
|
33
|
+
3. **参数装配**:构造 `action: "content-overviews"` 及其余过滤参数。
|
|
34
|
+
4. **指令执行**:当前能力正在迁移到 `yxer` CLI,本文档不再推荐脚本直调。
|
|
35
|
+
5. **数据反馈**:对返回的 `contentData` 进行聚合或横向对比,直接回答用户关心的关键性指标。
|
|
36
|
+
|
|
37
|
+
## 返回结果说明 (Response Details)
|
|
38
|
+
|
|
39
|
+
返回包含作品数据列表的对象。主要字段如下:
|
|
40
|
+
|
|
41
|
+
### 复杂对象:data.data (作品对象)
|
|
42
|
+
|
|
43
|
+
| 字段 | 类型 | 描述 |
|
|
44
|
+
| :--- | :--- | :--- |
|
|
45
|
+
| `platformAccountId` | `string` | 媒体账号 ID |
|
|
46
|
+
| `accountName` | `string` | 账号昵称 |
|
|
47
|
+
| `publishUserName` | `string` | 发布人昵称 |
|
|
48
|
+
| `contentData` | `object` | 原始统计数据。包含 `reCommand` (推荐), `play` (播放), `read` (阅读), `great` (点赞), `comment` (评论), `share` (分享), `collect` (收藏) 等。 |
|
|
49
|
+
| `updatedAt` | `number` | 数据更新时间戳 |
|
|
50
|
+
|
|
51
|
+
## 调用指令 (Command)
|
|
52
|
+
|
|
53
|
+
```text
|
|
54
|
+
当前版本尚未提供独立 `yxer` 子命令。
|
|
55
|
+
本页仅保留字段结构说明,执行时应优先扩展 Go CLI,而不是寻找旧脚本入口。
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## 注意事项
|
|
59
|
+
- 查询大范围数据时,建议合理设置 `publishStartTime` 和 `publishEndTime` 以提高查询效率。
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# 获取可挂载游戏列表 (Get Games)
|
|
2
|
+
|
|
3
|
+
获取发布视频时可挂载推广的游戏列表。该功能主要用于抖音等平台的“游戏推广”场景,通过挂载游戏链接赚取收益或进行内容深度联动。
|
|
4
|
+
|
|
5
|
+
## 触发场景 (Trigger)
|
|
6
|
+
- **意图辨析**:当用户在发布游戏相关的视频内容,并要求“挂载游戏链接”、“进行游戏推广”或“查找可推广的小游戏”时触发。
|
|
7
|
+
- **典型提示词**:
|
|
8
|
+
- “我要推广这款小游戏,查看可用链接”
|
|
9
|
+
- “帮我找一下抖音可挂载的游戏列表”
|
|
10
|
+
- “这个视频支持挂载游戏吗?”
|
|
11
|
+
|
|
12
|
+
## 参数定义 (Parameters)
|
|
13
|
+
|
|
14
|
+
### 参数列表 (Payload Properties)
|
|
15
|
+
|
|
16
|
+
| 字段名 | 类型 | 是否必填 | 说明 |
|
|
17
|
+
| :--- | :--- | :--- | :--- |
|
|
18
|
+
| `action` | `string` | **是** | 固定值:`games` |
|
|
19
|
+
| `account_id` | `string` | **是** | 蚁小二账号 ID (ObjectId) |
|
|
20
|
+
| `keyword` | `string` | 否 | 搜索游戏关键词 (别名: `keyWord`) |
|
|
21
|
+
|
|
22
|
+
## 执行逻辑 (Logic Flow)
|
|
23
|
+
1. **身份锚定**:必须先确定目标 `account_id`。
|
|
24
|
+
2. **关键词构造**:根据用户提供的游戏名称作为 `keyword` 注入。
|
|
25
|
+
3. **参数装配**:构造 `action: "games"` 负载。
|
|
26
|
+
4. **指令执行**:当前能力正在迁移到 `yxer` CLI,本文档不再推荐脚本直调。
|
|
27
|
+
5. **结果解析**:将筛选出的可用游戏信息反馈给用户,引导其在 `publish` 任务的 `platformSettings` 中完成最终挂载配置。
|
|
28
|
+
|
|
29
|
+
## 返回数据说明 (Response Details)
|
|
30
|
+
|
|
31
|
+
返回包含游戏对象(`Category` 结构)的数组。
|
|
32
|
+
每一个对象通常包含:`id`, `name`, `type` 等基础字段。
|
|
33
|
+
|
|
34
|
+
## 调用指令 (Command)
|
|
35
|
+
|
|
36
|
+
```text
|
|
37
|
+
当前版本尚未提供独立 `yxer` 子命令。
|
|
38
|
+
本页仅保留字段结构说明,执行时应优先扩展 Go CLI,而不是寻找旧脚本入口。
|
|
39
|
+
```
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# 获取商品列表 (Get Goods)
|
|
2
|
+
|
|
3
|
+
此接口用于获取指定媒体账号在平台上关联的商品、团购或小店商品列表,以便在发布视频时进行商业推广。
|
|
4
|
+
|
|
5
|
+
## 1. 调用指令
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
yxer query goods YOUR_ACCOUNT_ID --query 可选搜索词 --json
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 2. 请求参数
|
|
12
|
+
|
|
13
|
+
| 参数名 | 类型 | 必填 | 说明 |
|
|
14
|
+
| :--- | :--- | :--- | :--- |
|
|
15
|
+
| action | string | 是 | 固定为 `goods` |
|
|
16
|
+
| account_id | string | 是 | 蚁小二系统内的媒体账号 ID |
|
|
17
|
+
| keyword | string | 否 | 搜索商品的关键词 |
|
|
18
|
+
|
|
19
|
+
## 3. 返回数据结构
|
|
20
|
+
|
|
21
|
+
返回一个包含 `ShoppingCartItem` 对象的数组及分页信息。发布时必须使用 `yxer query goods` 返回的完整对象,不能只保留 `data.yixiaoerId`、`data.yixiaoerName` 或局部字段。
|
|
22
|
+
|
|
23
|
+
### ShoppingCartItem 结构说明
|
|
24
|
+
| 字段名 | 类型 | 说明 |
|
|
25
|
+
| :--- | :--- | :--- |
|
|
26
|
+
| `sale_title` | `string` | 挂车推广标题 |
|
|
27
|
+
| `images` | `string[]` | 顶层商品图片数组 |
|
|
28
|
+
| `data` | `object` | 核心商品数据对象 |
|
|
29
|
+
|
|
30
|
+
`data` 对象中的核心字段如下:
|
|
31
|
+
|
|
32
|
+
| 字段名 | 类型 | 说明 |
|
|
33
|
+
| :--- | :--- | :--- |
|
|
34
|
+
| `yixiaoerId` | `string` | (必填) 商品 ID |
|
|
35
|
+
| `yixiaoerName` | `string` | (必填) 商品名称 |
|
|
36
|
+
| `raw` | `object` | (必填) 平台原始商品对象。如果在获取时该字段存在,发布表单中必须携带并完整透传 |
|
|
37
|
+
| `yixiaoerDesc` | `string` | 商品规格说明 |
|
|
38
|
+
| `yixiaoerImageUrl` | `string` | 商品图片 URL |
|
|
39
|
+
| `price` | `number` | 商品价格(单位:分) |
|
|
40
|
+
| `earnPrice` | `number` | 预估佣金(单位:分) |
|
|
41
|
+
| `count` | `number` | 剩余库存 |
|
|
42
|
+
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# 获取群聊列表 (Get Groups)
|
|
2
|
+
|
|
3
|
+
此接口用于获取指定媒体账号在平台上已创建或加入的群聊列表,以便在发布视频时进行绑定。
|
|
4
|
+
|
|
5
|
+
## 1. 调用指令
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
当前版本尚未提供独立 `yxer` 子命令。
|
|
9
|
+
本页仅保留字段结构说明,执行时应优先扩展 Go CLI,而不是寻找旧脚本入口。
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## 2. 请求参数
|
|
13
|
+
|
|
14
|
+
| 参数名 | 类型 | 必填 | 说明 |
|
|
15
|
+
| :--- | :--- | :--- | :--- |
|
|
16
|
+
| action | string | 是 | 固定为 `groups` |
|
|
17
|
+
| account_id | string | 是 | 蚁小二系统内的媒体账号 ID |
|
|
18
|
+
|
|
19
|
+
## 3. 返回数据结构
|
|
20
|
+
|
|
21
|
+
返回一个包含 `Group` 对象的数组。
|
|
22
|
+
|
|
23
|
+
### Group 结构说明
|
|
24
|
+
| 字段名 | 类型 | 说明 |
|
|
25
|
+
| :--- | :--- | :--- |
|
|
26
|
+
| yixiaoerId | string | 群聊 ID |
|
|
27
|
+
| yixiaoerName | string | 群聊标题 |
|
|
28
|
+
| yixiaoerDesc | string | 群聊描述 |
|
|
29
|
+
| yixiaoerImageUrl | string | 群聊头像 URL |
|
|
30
|
+
| `raw` | `object` | 平台原始数据。如果在获取时该字段存在,发布表单中必须携带并完整透传 |
|
|
31
|
+
|
|
32
|
+
## 后端逻辑说明
|
|
33
|
+
|
|
34
|
+
- **功能**: 封装蚁小二标准化群聊查询接口 (`GET /platform-accounts/{platformAccountId}/group-chats`)。
|
|
35
|
+
- **参数映射**: 将 `account_id` 映射为 URL 路径变量。
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# 获取地理位置 (Get Locations)
|
|
2
|
+
|
|
3
|
+
获取在发布内容时可选的地理位置列表(支持 POI 搜索、门店地址、带货地址等)。
|
|
4
|
+
|
|
5
|
+
## 调用指令 (Command)
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
yxer query locations XXX --query 深圳 --type 1 --json
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 参数列表 (Payload Properties)
|
|
12
|
+
|
|
13
|
+
| 字段名 | 类型 | 是否必填 | 说明 |
|
|
14
|
+
| :--- | :--- | :--- | :--- |
|
|
15
|
+
| `account_id` | `string` | **是** | 蚁小二账号 ID (32位十六进制) |
|
|
16
|
+
| `keyword` | `string` | 否 | 搜索关键词 |
|
|
17
|
+
| `type` | `number` | 否 | 地址权限/搜索类型:`0`: 全部, `1`: 本地 (默认), `2`: 国内, `3`: 海外 |
|
|
18
|
+
| `nextPage` | `string` | 否 | 分页标识,在返回结果中获取 |
|
|
19
|
+
|
|
20
|
+
## 返回结果 (Response)
|
|
21
|
+
|
|
22
|
+
返回一个包含地理位置对象的数组。发布时必须将 `yxer query locations` 返回的整个对象作为 `location` 参数传递给发布流程,不能只摘取 `yixiaoerId`、`yixiaoerName` 或 `raw`。
|
|
23
|
+
|
|
24
|
+
```json
|
|
25
|
+
[
|
|
26
|
+
{
|
|
27
|
+
"yixiaoerId": "POI_12345",
|
|
28
|
+
"yixiaoerName": "深圳市南山区...",
|
|
29
|
+
"yixiaoerDesc": "详细地址描述",
|
|
30
|
+
"productCount": "100",
|
|
31
|
+
"cpsProductCount": "50",
|
|
32
|
+
"raw": { ... }
|
|
33
|
+
}
|
|
34
|
+
]
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### 基础结构 (Base Structure)
|
|
38
|
+
- `yixiaoerId`: (必填) 内部唯一 ID。
|
|
39
|
+
- `yixiaoerName`: (必填) 地理位置名称。
|
|
40
|
+
- `raw`: (必填) 原始平台返回的地理位置对象。如果在获取时该字段存在,发布表单中必须携带并完整透传。
|
|
41
|
+
- `yixiaoerDesc`: (可选) 地理位置详细说明。
|
|
42
|
+
|
|
43
|
+
## CLI / 后端逻辑
|
|
44
|
+
|
|
45
|
+
- **CLI 命令**: `yxer query locations <account_id> [--query 关键词] [--type 0|1|2|3] [--json]`
|
|
46
|
+
- **功能**: 封装蚁小二标准地理位置查询接口 (`GET /platform-accounts/{platformAccountId}/location`)。
|
|
47
|
+
- **参数映射**: 将 `account_id` 映射为路径变量,将 `keyWord`, `locationType`, `nextPage` 映射为查询参数。
|
|
48
|
+
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# 获取小程序列表 (Get MiniApps)
|
|
2
|
+
|
|
3
|
+
获取账号可用的挂载小程序列表。此功能常用于抖音、视频号等平台的组件挂载场景。
|
|
4
|
+
|
|
5
|
+
## 触发场景 (Trigger)
|
|
6
|
+
- **意图辨析**:当用户需要在视频或图文中挂载特定的小程序入口(如:抽奖小程序、购物小程序、工具小程序)时触发。
|
|
7
|
+
- **典型提示词**:
|
|
8
|
+
- “这个视频需要挂载一个小程序”
|
|
9
|
+
- “查询我可以使用的挂载小程序”
|
|
10
|
+
- “搜索名为‘抽奖助手’的小程序”
|
|
11
|
+
|
|
12
|
+
## 参数定义 (Parameters)
|
|
13
|
+
|
|
14
|
+
### 参数列表 (Payload Properties)
|
|
15
|
+
|
|
16
|
+
| 字段名 | 类型 | 是否必填 | 说明 |
|
|
17
|
+
| :--- | :--- | :--- | :--- |
|
|
18
|
+
| `action` | `string` | **是** | 固定值:`miniapps` |
|
|
19
|
+
| `account_id` | `string` | **是** | 蚁小二账号 ID (ObjectId) |
|
|
20
|
+
| `keyword` | `string` | 否 | 搜索小程序关键词 (别名: `keyWord`) |
|
|
21
|
+
|
|
22
|
+
## 执行逻辑 (Logic Flow)
|
|
23
|
+
1. **前置查询**:确认账号 `account_id`,确保该账号具备对应平台的小程序挂载权限。
|
|
24
|
+
2. **参数装配**:识别搜索意图,注入 `keyword`。
|
|
25
|
+
3. **指令执行**:当前能力正在迁移到 `yxer` CLI,本文档不再推荐脚本直调。
|
|
26
|
+
4. **关联挂载**:获取小程序信息后,将其详情填入发布 Payload 的对应平台表单中。
|
|
27
|
+
|
|
28
|
+
## 返回数据说明 (Response Details)
|
|
29
|
+
|
|
30
|
+
返回包含小程序对象(`Category` 结构)的数组。
|
|
31
|
+
每一个对象通常包含:`id`, `name`, `appId` 等关键字段。
|
|
32
|
+
|
|
33
|
+
## 调用指令 (Command)
|
|
34
|
+
|
|
35
|
+
```text
|
|
36
|
+
当前版本尚未提供独立 `yxer` 子命令。
|
|
37
|
+
本页仅保留字段结构说明,执行时应优先扩展 Go CLI,而不是寻找旧脚本入口。
|
|
38
|
+
```
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# 获取音乐分类 (Get Music Categories)
|
|
2
|
+
|
|
3
|
+
获取在选择音乐素材时可选的分类列表。
|
|
4
|
+
|
|
5
|
+
## 调用指令 (Command)
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
当前版本尚未提供独立 `yxer` 子命令。
|
|
9
|
+
本页仅保留字段结构说明,执行时应优先扩展 Go CLI,而不是寻找旧脚本入口。
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## 参数列表 (Payload Properties)
|
|
13
|
+
|
|
14
|
+
| 字段名 | 类型 | 是否必填 | 说明 |
|
|
15
|
+
| :--- | :--- | :--- | :--- |
|
|
16
|
+
| `account_id` | `string` | **是** | 蚁小二账号 ID (32位十六进制) |
|
|
17
|
+
|
|
18
|
+
## 返回结果 (Response)
|
|
19
|
+
|
|
20
|
+
返回一个包含音乐分类对象的数组。脚本会自动将多级嵌套的分类**铺平 (Flatten)**,并为每个对象生成 `child` 路径数组。
|
|
21
|
+
|
|
22
|
+
```json
|
|
23
|
+
[
|
|
24
|
+
{
|
|
25
|
+
"yixiaoerId": "123",
|
|
26
|
+
"yixiaoerName": "流行",
|
|
27
|
+
"child": [ { "yixiaoerId": "123", "yixiaoerName": "流行" } ],
|
|
28
|
+
"raw": { "id": "123", "name": "流行" }
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### 复杂对象:CategoryItem
|
|
34
|
+
- `yixiaoerId`: 内部分类 ID。
|
|
35
|
+
- `yixiaoerName`: 分类名称。
|
|
36
|
+
- `child`: **完整路径对象数组**。如果分类有父子级关系,发布表单时通常需要在此处填入整个生成的 `child`。
|
|
37
|
+
- `raw`: 原始平台返回的分类对象。
|
|
38
|
+
|
|
39
|
+
## 后端逻辑说明
|
|
40
|
+
|
|
41
|
+
- **功能**: 封装蚁小二标准音乐分类查询接口并自动执行 `flattenTree` 逻辑。
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# 获取音乐素材列表 (Get Music)
|
|
2
|
+
|
|
3
|
+
获取发布内容时可供选择的平台背景音乐素材。支持平台:**抖音、快手、视频号**。
|
|
4
|
+
|
|
5
|
+
## 触发场景 (Trigger)
|
|
6
|
+
- **意图辨析**:当用户在准备发布短视频内容,并要求添加特定背景音乐、搜寻热门歌曲或按分类查找音乐时触发。
|
|
7
|
+
- **典型提示词**:
|
|
8
|
+
- “帮我找一下适合跳舞的抖音音乐”
|
|
9
|
+
- “搜索周杰伦的《稻香》用于这个视频”
|
|
10
|
+
- “获取热门音乐分类”
|
|
11
|
+
- “我的视频号发布需要配乐”
|
|
12
|
+
|
|
13
|
+
## 参数定义 (Parameters)
|
|
14
|
+
|
|
15
|
+
### 参数列表 (Payload Properties)
|
|
16
|
+
|
|
17
|
+
| 字段名 | 类型 | 是否必填 | 说明 |
|
|
18
|
+
| :--- | :--- | :--- | :--- |
|
|
19
|
+
| `action` | `string` | **是** | 固定值:`music` |
|
|
20
|
+
| `account_id` | `string` | **是** | 蚁小二账号 ID (32位十六进制) |
|
|
21
|
+
| `keyword` | `string` | 否 | 搜索音乐关键词 (别名: `keyWord`) |
|
|
22
|
+
| `categoryId` | `string` | 否 | 音乐分类 ID。**需与 categoryName 同时提供,仅支持抖音**,优先级高于 `keyword` |
|
|
23
|
+
| `categoryName`| `string` | 否 | 音乐分类名称。**需与 categoryId 同时提供,仅支持抖音** |
|
|
24
|
+
| `nextPage` | `string` | 否 | 分页标识,在返回结果中获取 |
|
|
25
|
+
|
|
26
|
+
## 执行逻辑 (Logic Flow)
|
|
27
|
+
1. **参数前置**:必须先获取有效的 `account_id`(通过 `accounts` action)。
|
|
28
|
+
2. **场景匹配**:判断是否指定了特定分类 (Category)。若指定,则优先注入 `categoryId`。
|
|
29
|
+
3. **参数装配**:构造 `action: "music"` 及其余查询参数。
|
|
30
|
+
4. **指令执行**:调用 `yxer query music <account_id> [--query 关键词] [--json]`。
|
|
31
|
+
5. **素材交付**:将返回的 `MusicItem` 列表展示给用户,或直接提取 `raw` 字段用于发布 Payload。
|
|
32
|
+
|
|
33
|
+
## 返回结果 (Response)
|
|
34
|
+
|
|
35
|
+
返回一个包含音乐素材对象的数组。发布时请将整个对象(使用 `MusicItem` 结构)作为 `music` 参数传递给发布脚本,不能只摘取 ID、名称或少数字段。如果在获取时 `raw` 字段有值,发布表单中必须完整保留并透传;`playUrl` / `url` 作为查询结果元数据也应保留,不要手动删除。
|
|
36
|
+
|
|
37
|
+
```json
|
|
38
|
+
[
|
|
39
|
+
{
|
|
40
|
+
"yixiaoerId": "music_123",
|
|
41
|
+
"yixiaoerName": "稻香",
|
|
42
|
+
"artist": "周杰伦",
|
|
43
|
+
"playUrl": "http://...",
|
|
44
|
+
"duration": 240,
|
|
45
|
+
"raw": { ... }
|
|
46
|
+
}
|
|
47
|
+
]
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### 复杂对象:MusicItem
|
|
51
|
+
- `yixiaoerId`: (必填) 蚁小二端统一音乐 ID。
|
|
52
|
+
- `yixiaoerName`: (必填) 歌曲名称。
|
|
53
|
+
- `duration`: (必填) 音乐时长(单位:秒)。
|
|
54
|
+
- `playUrl`: (必填) 试听/播放链接。
|
|
55
|
+
- `artist`: (可选)歌手/作者名。
|
|
56
|
+
- `raw`: (可选) 平台原始数据。如果在音乐列表获取时该字段存在,发布表单中必须携带并完整透传。
|
|
57
|
+
|
|
58
|
+
## 调用指令 (Command)
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
yxer query music XXX --query 周杰伦 --json
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## 注意事项
|
|
65
|
+
- **抖音专用**:`categoryId` 搜索目前仅在抖音平台调用时生效。
|
|
66
|
+
- **透传规则**:`raw` 字段非常关键,某些平台校验严格,必须原样透传。
|
|
67
|
+
|