nebula-event-viewer
SKILL.md
埋点定义查看 Skill
Overview
通过两步 API 调用,根据用户输入的项目名称和关键字,查询 IDSAAS 系统中的埋点定义详情。
鉴权: 请求头 X-User-Api-Key: a951cad699de405aade583437a8871dd(从 Skills Hub 下载时自动注入)
执行流程
digraph flow {
rankdir=TB;
A [label="解析用户输入\n提取项目名 & 关键字", shape=box];
B [label="GET /project/listByUserId\n获取全部项目列表", shape=box];
C [label="模糊匹配项目名\n得到 projectId 列表", shape=diamond];
D [label="告知用户:未找到匹配项目\n请求确认", shape=box];
E [label="POST /customReportType/pageList\n逐个 projectId 查询", shape=box];
F [label="格式化输出埋点定义", shape=box];
A -> B -> C;
C -> D [label="无匹配"];
C -> E [label="有匹配"];
E -> F;
}
Step 1:获取项目列表
GET https://idsaas-o.api.leiniao.com/dc-cms-dataimport/project/listByUserId?userId=all
Header: X-User-Api-Key: a951cad699de405aade583437a8871dd
返回字段说明(result 数组每项):
| 字段 | 说明 |
|---|---|
id |
项目 ID(pageList 查询使用此值) |
name |
项目名称(用于模糊匹配用户输入) |
projectType |
平台类型(Android/iOS 等) |
terminalType |
终端类型(tv/mobile 等) |
appName |
应用名称 |
desc |
项目描述 |
isDeleted |
0=正常,1=已删除(过滤掉) |
项目匹配规则:
- 对用户输入的项目名做大小写不敏感模糊匹配(包含即命中)
- 匹配
name或appName字段 - 过滤掉
isDeleted=1的项目 - 若匹配到多个,全部查询;若无匹配,列出候选项请用户确认
Step 2:查询埋点定义
POST https://idsaas-o.api.leiniao.com/dc-cms-dataimport/customReportType/pageList
Header: X-User-Api-Key: a951cad699de405aade583437a8871dd
Header: Content-Type: application/json
请求体:
{
"page": {
"size": 10,
"page": 0,
"key": "updateTime",
"value": "desc",
"echo": 1,
"search": "<关键字,无则空字符串>"
},
"userId": "all",
"projectId": "<Step1 中得到的项目 id>"
}
参数说明:
projectId:每次只传一个项目 ID;多项目需分多次调用后汇总search:用户输入的关键字(如"点击"、"曝光"),无关键字时传""page:默认 size=10,可视结果数量调整;iTotalRecords为总数
响应结构(顶层字段):
{
"iTotalRecords": 2,
"iTotalDisplayRecords": 2,
"result": [ ... ],
"errcode": 0,
"des": "请求成功"
}
注意:
iTotalRecords、iTotalDisplayRecords和result均在响应顶层,不是嵌套在某个对象内。解析时直接用data["iTotalRecords"]和data["result"],不要用data["result"]["iTotalRecords"]。
返回字段说明(result 数组每项):
| 字段 | 说明 |
|---|---|
name |
埋点名称 |
reportTypeFlag |
埋点唯一标识码 |
desc |
功能描述 |
reportTimeDesc |
上报时机 |
resultDesc |
数据用途说明 |
properties |
字段列表(见下) |
projectName |
所属项目名 |
developer |
负责开发者 |
updateTime |
最后更新时间 |
properties 数组每项:
| 字段 | 说明 |
|---|---|
fieldName |
字段名(英文) |
fieldType |
类型(string/int 等) |
fieldDesc |
字段说明 |
valueRange |
取值范围/枚举说明 |
输出格式
对每条埋点,按以下格式呈现:
## [埋点名称] (projectName)
- 标识码:reportTypeFlag
- 描述:desc
- 上报时机:reportTimeDesc
- 数据用途:resultDesc
- 更新时间:updateTime
- 开发者:developer
### 字段列表
| 字段名 | 类型 | 说明 | 取值范围 |
|--------|------|------|----------|
| ... | ... | ... | ... |
多项目结果用项目名分组展示,并在开头注明:「共找到 N 条埋点定义(项目A: X条,项目B: Y条)」
示例
用户输入: "我要查看VOD项目下和点击相关的埋点"
执行步骤:
- 提取:项目名=
VOD,关键字=点击 - 调用 Step1,模糊匹配到:腾讯VOD (id=
587df318f428480630df8722)、VOD-8月买赠活动 (id=5992a97f0e5b084148a871ba) 等 - 确认是否查询全部,或让用户选择
- 对每个 id,以
search="点击"调用 Step2 - 汇总展示结果
常见情况处理
| 情况 | 处理方式 |
|---|---|
| 用户只说项目名,无关键字 | search="" 查全部,提示总数后按需翻页 |
| 匹配到 3+ 个项目 | 列出匹配列表让用户确认,再决定全查或选择 |
| 结果超过 10 条 | 告知总数(iTotalRecords),询问是否继续翻页(增大 size 或递增 page) |
| 无任何结果 | 提示关键字可能过于精确,建议换宽泛词重试 |