@bluevs/vhcli 0.5.9 → 0.5.10
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/package.json +8 -9
- package/skill/SKILL.md +0 -383
- package/skill/docs/agent.md +0 -43
- package/skill/docs/auth.md +0 -47
- package/skill/docs/company.md +0 -47
- package/skill/docs/google.md +0 -34
- package/skill/docs/material-report.md +0 -191
- package/skill/docs/project.md +0 -435
- package/skill/docs/tiktok.md +0 -749
- package/skill/scripts/install-skill.sh +0 -126
- package/skill/scripts/vh-auth-card.cjs +0 -228
|
@@ -1,191 +0,0 @@
|
|
|
1
|
-
# Material Report - 素材与广告效果报表
|
|
2
|
-
|
|
3
|
-
> 素材报表、归因报表(Adjust/AppsFlyer)、TikTok 素材报表、广告预览。
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## get
|
|
8
|
-
|
|
9
|
-
获取素材报表(Meta/Google/TikTok 等平台)。
|
|
10
|
-
|
|
11
|
-
**CLI:**
|
|
12
|
-
```bash
|
|
13
|
-
vhcli material-report get \
|
|
14
|
-
--customer-project-id <int> \
|
|
15
|
-
--platform <Meta|Google|TikTok> \
|
|
16
|
-
--start-time 2025-01-01 \
|
|
17
|
-
--end-time 2025-01-31 \
|
|
18
|
-
[--campaign-names <name1,name2>] \
|
|
19
|
-
[--ad-group-name <name>] \
|
|
20
|
-
[--ad-name <name>] \
|
|
21
|
-
[--material-name <name>] \
|
|
22
|
-
[--material-formats <image,video>] \
|
|
23
|
-
[--account-ids <id1,id2>] \
|
|
24
|
-
[--page-size 20] [--page-num 1] \
|
|
25
|
-
[--order-param <field:asc|desc>]
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
**参数:**
|
|
29
|
-
|
|
30
|
-
| 参数 | 类型 | 必填 | 默认 | 说明 |
|
|
31
|
-
|------|------|------|------|------|
|
|
32
|
-
| customer_project_id | int32 | ✅ | | 客户项目 ID |
|
|
33
|
-
| platform | string | ✅ | | 广告平台(Meta/Google/TikTok) |
|
|
34
|
-
| start_time | string | ✅ | | 开始日期(2025-01-01) |
|
|
35
|
-
| end_time | string | ✅ | | 结束日期(2025-01-01) |
|
|
36
|
-
| campaign_names | []string | | | 广告系列名称过滤 |
|
|
37
|
-
| ad_group_name | string | | | 广告组名模糊搜索 |
|
|
38
|
-
| ad_name | string | | | 广告名模糊搜索 |
|
|
39
|
-
| material_name | string | | | 素材名模糊搜索 |
|
|
40
|
-
| material_formats | []string | | | 素材格式(image/video) |
|
|
41
|
-
| account_ids | []string | | | 账户 ID 过滤 |
|
|
42
|
-
| page_size | int32 | | 20 | 每页条数 |
|
|
43
|
-
| page_num | int32 | | 1 | 页码 |
|
|
44
|
-
| order_param | Sort | | | 排序(字段+顺序) |
|
|
45
|
-
|
|
46
|
-
**响应:** MaterialReportData(含 pagination + list)
|
|
47
|
-
|
|
48
|
-
---
|
|
49
|
-
|
|
50
|
-
## filter
|
|
51
|
-
|
|
52
|
-
获取素材报表筛选选项(可用的 campaign 名称列表)。
|
|
53
|
-
|
|
54
|
-
**CLI:**
|
|
55
|
-
```bash
|
|
56
|
-
vhcli material-report filter \
|
|
57
|
-
--customer-project-id <int> \
|
|
58
|
-
--platform <Meta|Google|TikTok> \
|
|
59
|
-
--start-time 2025-01-01 \
|
|
60
|
-
--end-time 2025-01-31 \
|
|
61
|
-
[--campaign-name <fuzzy>]
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
**参数:**
|
|
65
|
-
|
|
66
|
-
| 参数 | 类型 | 必填 | 说明 |
|
|
67
|
-
|------|------|------|------|
|
|
68
|
-
| customer_project_id | int32 | ✅ | 客户项目 ID |
|
|
69
|
-
| platform | string | ✅ | 广告平台 |
|
|
70
|
-
| start_time | string | ✅ | 开始日期 |
|
|
71
|
-
| end_time | string | ✅ | 结束日期 |
|
|
72
|
-
| campaign_name | string | | Campaign 名模糊搜索 |
|
|
73
|
-
|
|
74
|
-
**响应:** []string(campaign 名称列表)
|
|
75
|
-
|
|
76
|
-
---
|
|
77
|
-
|
|
78
|
-
## adjust
|
|
79
|
-
|
|
80
|
-
获取 Adjust 归因报表。
|
|
81
|
-
|
|
82
|
-
**CLI:**
|
|
83
|
-
```bash
|
|
84
|
-
vhcli material-report adjust \
|
|
85
|
-
--customer-project-id <int> \
|
|
86
|
-
--start-time 2025-01-01 \
|
|
87
|
-
--end-time 2025-01-31 \
|
|
88
|
-
[--keyword <search>] \
|
|
89
|
-
[--page-size 20] [--page-num 1] \
|
|
90
|
-
[--order-param <field:asc|desc>]
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
**参数:**
|
|
94
|
-
|
|
95
|
-
| 参数 | 类型 | 必填 | 默认 | 说明 |
|
|
96
|
-
|------|------|------|------|------|
|
|
97
|
-
| customer_project_id | int32 | ✅ | | 客户项目 ID |
|
|
98
|
-
| start_time | string | ✅ | | 开始日期 |
|
|
99
|
-
| end_time | string | ✅ | | 结束日期 |
|
|
100
|
-
| keyword | string | | | 关键词搜索 |
|
|
101
|
-
| page_size | int32 | | 20 | 每页条数 |
|
|
102
|
-
| page_num | int32 | | 1 | 页码 |
|
|
103
|
-
| order_param | Sort | | | 排序 |
|
|
104
|
-
|
|
105
|
-
**响应:** AdjustReportData(含 pagination + list)
|
|
106
|
-
|
|
107
|
-
---
|
|
108
|
-
|
|
109
|
-
## appsflyer
|
|
110
|
-
|
|
111
|
-
获取 AppsFlyer 归因报表。
|
|
112
|
-
|
|
113
|
-
**CLI:**
|
|
114
|
-
```bash
|
|
115
|
-
vhcli material-report appsflyer \
|
|
116
|
-
--customer-project-id <int> \
|
|
117
|
-
--start-time 2025-01-01 \
|
|
118
|
-
--end-time 2025-01-31 \
|
|
119
|
-
[--keyword <search>] \
|
|
120
|
-
[--page-size 20] [--page-num 1] \
|
|
121
|
-
[--order-param <field:asc|desc>]
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
**参数:**
|
|
125
|
-
|
|
126
|
-
| 参数 | 类型 | 必填 | 默认 | 说明 |
|
|
127
|
-
|------|------|------|------|------|
|
|
128
|
-
| customer_project_id | int32 | ✅ | | 客户项目 ID |
|
|
129
|
-
| start_time | string | ✅ | | 开始日期 |
|
|
130
|
-
| end_time | string | ✅ | | 结束日期 |
|
|
131
|
-
| keyword | string | | | 关键词搜索 |
|
|
132
|
-
| page_size | int32 | | 20 | 每页条数 |
|
|
133
|
-
| page_num | int32 | | 1 | 页码 |
|
|
134
|
-
| order_param | Sort | | | 排序 |
|
|
135
|
-
|
|
136
|
-
**响应:** AppsFlyerReportData(含 pagination + list)
|
|
137
|
-
|
|
138
|
-
---
|
|
139
|
-
|
|
140
|
-
## tiktok
|
|
141
|
-
|
|
142
|
-
获取 TikTok 素材报表。
|
|
143
|
-
|
|
144
|
-
**CLI:**
|
|
145
|
-
```bash
|
|
146
|
-
vhcli material-report tiktok \
|
|
147
|
-
--customer-project-id <int> \
|
|
148
|
-
--platform TikTok \
|
|
149
|
-
--start-time 2025-01-01 \
|
|
150
|
-
--end-time 2025-01-31 \
|
|
151
|
-
[--page-size 20] [--page-num 1]
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
**参数:**
|
|
155
|
-
|
|
156
|
-
| 参数 | 类型 | 必填 | 默认 | 说明 |
|
|
157
|
-
|------|------|------|------|------|
|
|
158
|
-
| customer_project_id | int32 | ✅ | | 客户项目 ID |
|
|
159
|
-
| platform | string | ✅ | | 广告平台 |
|
|
160
|
-
| start_time | string | ✅ | | 开始日期 |
|
|
161
|
-
| end_time | string | ✅ | | 结束日期 |
|
|
162
|
-
| page_size | int32 | | 20 | 每页条数 |
|
|
163
|
-
| page_num | int32 | | 1 | 页码 |
|
|
164
|
-
|
|
165
|
-
**响应:** TikTokMaterialReportData(含 pagination + list)
|
|
166
|
-
|
|
167
|
-
---
|
|
168
|
-
|
|
169
|
-
## ad-preview
|
|
170
|
-
|
|
171
|
-
获取广告预览 iframe HTML。
|
|
172
|
-
|
|
173
|
-
**CLI:**
|
|
174
|
-
```bash
|
|
175
|
-
vhcli material-report ad-preview \
|
|
176
|
-
--customer-project-id <int> \
|
|
177
|
-
--platform <Meta|Google|TikTok> \
|
|
178
|
-
--ad-id <string> \
|
|
179
|
-
--account-id <string>
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
**参数:**
|
|
183
|
-
|
|
184
|
-
| 参数 | 类型 | 必填 | 说明 |
|
|
185
|
-
|------|------|------|------|
|
|
186
|
-
| customer_project_id | int32 | ✅ | 客户项目 ID |
|
|
187
|
-
| platform | string | ✅ | 广告平台 |
|
|
188
|
-
| ad_id | string | ✅ | 广告 ID |
|
|
189
|
-
| account_id | string | ✅ | 广告账户 ID |
|
|
190
|
-
|
|
191
|
-
**响应:** string(iframe HTML)
|
package/skill/docs/project.md
DELETED
|
@@ -1,435 +0,0 @@
|
|
|
1
|
-
# Project - 项目管理
|
|
2
|
-
|
|
3
|
-
> 项目查询、账户管理、成员管理、授权配置、功能开关。
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## list
|
|
8
|
-
|
|
9
|
-
列出项目,支持分页和搜索。
|
|
10
|
-
|
|
11
|
-
**CLI:**
|
|
12
|
-
```bash
|
|
13
|
-
vhcli project list [--page-size 20] [--page-num 1] [--project-name <name>]
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
**参数:**
|
|
17
|
-
|
|
18
|
-
| 参数 | 类型 | 必填 | 默认 | 说明 |
|
|
19
|
-
|------|------|------|------|------|
|
|
20
|
-
| page_size | int32 | | 20 | 每页条数 |
|
|
21
|
-
| page_num | int32 | | 1 | 页码 |
|
|
22
|
-
| project_name | string | | | 按项目名搜索 |
|
|
23
|
-
|
|
24
|
-
**响应:** ProjectListData(含 pagination + list)
|
|
25
|
-
|
|
26
|
-
---
|
|
27
|
-
|
|
28
|
-
## info
|
|
29
|
-
|
|
30
|
-
获取项目基本信息和知识库。
|
|
31
|
-
|
|
32
|
-
**CLI:**
|
|
33
|
-
```bash
|
|
34
|
-
vhcli project info --project-id <po_xxx>
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
**参数:**
|
|
38
|
-
|
|
39
|
-
| 参数 | 类型 | 必填 | 说明 |
|
|
40
|
-
|------|------|------|------|
|
|
41
|
-
| project_id | string | ✅ | 项目 ID(po_xxxx) |
|
|
42
|
-
|
|
43
|
-
**响应:** ProjectInfoData
|
|
44
|
-
- project, alliance, members, switches, affiliate_operators, brand_category
|
|
45
|
-
|
|
46
|
-
---
|
|
47
|
-
|
|
48
|
-
## accounts
|
|
49
|
-
|
|
50
|
-
获取项目下的广告账户列表。
|
|
51
|
-
|
|
52
|
-
**CLI:**
|
|
53
|
-
```bash
|
|
54
|
-
vhcli project accounts --project-id <po_xxx> [--platform-list Meta,Google]
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
**参数:**
|
|
58
|
-
|
|
59
|
-
| 参数 | 类型 | 必填 | 说明 |
|
|
60
|
-
|------|------|------|------|
|
|
61
|
-
| project_id | string | ✅ | 项目 ID |
|
|
62
|
-
| platform_list | string | | 逗号分隔的平台过滤 |
|
|
63
|
-
|
|
64
|
-
**响应:** []AccountListItem(含 account_list + platform)
|
|
65
|
-
|
|
66
|
-
---
|
|
67
|
-
|
|
68
|
-
## account_token
|
|
69
|
-
|
|
70
|
-
获取广告账户的 access token。
|
|
71
|
-
|
|
72
|
-
**CLI:**
|
|
73
|
-
```bash
|
|
74
|
-
vhcli project account-token --customer-project-id <int> --account-id <string>
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
**参数:**
|
|
78
|
-
|
|
79
|
-
| 参数 | 类型 | 必填 | 说明 |
|
|
80
|
-
|------|------|------|------|
|
|
81
|
-
| customer_project_id | int32 | ✅ | 客户项目 ID(数字) |
|
|
82
|
-
| account_id | string | ✅ | 广告账户 ID |
|
|
83
|
-
|
|
84
|
-
**响应:** AccountTokenData(含 access_token)
|
|
85
|
-
|
|
86
|
-
---
|
|
87
|
-
|
|
88
|
-
## resource
|
|
89
|
-
|
|
90
|
-
获取项目资源(账户和 campaign)。
|
|
91
|
-
|
|
92
|
-
**CLI:**
|
|
93
|
-
```bash
|
|
94
|
-
vhcli project resource --project-id <po_xxx>
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
**参数:**
|
|
98
|
-
|
|
99
|
-
| 参数 | 类型 | 必填 | 说明 |
|
|
100
|
-
|------|------|------|------|
|
|
101
|
-
| project_id | string | ✅ | 项目 ID |
|
|
102
|
-
|
|
103
|
-
**响应:** ProjectResourceData(含 accounts + campaigns)
|
|
104
|
-
|
|
105
|
-
---
|
|
106
|
-
|
|
107
|
-
## config_list
|
|
108
|
-
|
|
109
|
-
获取项目授权配置(绑定了哪些第三方平台授权)。
|
|
110
|
-
|
|
111
|
-
**CLI:**
|
|
112
|
-
```bash
|
|
113
|
-
vhcli project config-list --customer-project-id <int> [--config-key Meta]
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
**参数:**
|
|
117
|
-
|
|
118
|
-
| 参数 | 类型 | 必填 | 说明 |
|
|
119
|
-
|------|------|------|------|
|
|
120
|
-
| customer_project_id | int32 | ✅ | 客户项目 ID |
|
|
121
|
-
| config_key | string | | 按平台过滤(Meta/TikTok/Google/Impact/Snapchat) |
|
|
122
|
-
|
|
123
|
-
**响应:** ConfigListData(含 list)
|
|
124
|
-
|
|
125
|
-
---
|
|
126
|
-
|
|
127
|
-
## config_save
|
|
128
|
-
|
|
129
|
-
保存项目授权配置。原子性替换所有配置。⚠️ 需要项目管理员权限,需 `--yes` 确认。
|
|
130
|
-
|
|
131
|
-
**CLI:**
|
|
132
|
-
```bash
|
|
133
|
-
vhcli project config-save --customer-project-id <int> --config-list '<json>' --yes
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
**参数:**
|
|
137
|
-
|
|
138
|
-
| 参数 | 类型 | 必填 | 说明 |
|
|
139
|
-
|------|------|------|------|
|
|
140
|
-
| customer_project_id | int32 | ✅ | 客户项目 ID |
|
|
141
|
-
| config_list | []ConfigEntry | ✅ | [{config_key, config_value}] 数组 |
|
|
142
|
-
|
|
143
|
-
**响应:** CommonResponse
|
|
144
|
-
|
|
145
|
-
---
|
|
146
|
-
|
|
147
|
-
## account_discover
|
|
148
|
-
|
|
149
|
-
发现授权下可用的广告账户。用于添加账户前的探索步骤。
|
|
150
|
-
|
|
151
|
-
**前置依赖:** 先调用 `config_list` 和 `account_organizations` 获取 authorization_id 和 organization_id。
|
|
152
|
-
|
|
153
|
-
**CLI:**
|
|
154
|
-
```bash
|
|
155
|
-
vhcli project account-discover \
|
|
156
|
-
--customer-project-id <int> \
|
|
157
|
-
--config-key <Meta|TikTok|Google> \
|
|
158
|
-
--authorization-id <string> \
|
|
159
|
-
[--organization-id <string>] \
|
|
160
|
-
[--search <keyword>]
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
**参数:**
|
|
164
|
-
|
|
165
|
-
| 参数 | 类型 | 必填 | 说明 |
|
|
166
|
-
|------|------|------|------|
|
|
167
|
-
| customer_project_id | int32 | ✅ | 客户项目 ID |
|
|
168
|
-
| config_key | string | ✅ | 平台名 |
|
|
169
|
-
| authorization_id | string | ✅ | 授权 ID(从 config_list 获取) |
|
|
170
|
-
| organization_id | string | | 组织 ID(部分平台可选) |
|
|
171
|
-
| search | string | | 搜索关键词 |
|
|
172
|
-
|
|
173
|
-
**响应:** []AccountByAuthData(含 config_key + authorization_id + account_item)
|
|
174
|
-
|
|
175
|
-
---
|
|
176
|
-
|
|
177
|
-
## account_organizations
|
|
178
|
-
|
|
179
|
-
获取授权下的组织列表。添加账户前的中间步骤。
|
|
180
|
-
|
|
181
|
-
**前置依赖:** 先调用 `config_list` 获取 authorization_id。
|
|
182
|
-
|
|
183
|
-
**CLI:**
|
|
184
|
-
```bash
|
|
185
|
-
vhcli project account-organizations \
|
|
186
|
-
--customer-project-id <int> \
|
|
187
|
-
--config-key <Meta|TikTok|Google> \
|
|
188
|
-
--authorization-id <string>
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
**参数:**
|
|
192
|
-
|
|
193
|
-
| 参数 | 类型 | 必填 | 说明 |
|
|
194
|
-
|------|------|------|------|
|
|
195
|
-
| customer_project_id | int32 | ✅ | 客户项目 ID |
|
|
196
|
-
| config_key | string | ✅ | 平台名 |
|
|
197
|
-
| authorization_id | string | ✅ | 授权 ID |
|
|
198
|
-
|
|
199
|
-
**响应:** []OrganizationItem(含 organization_id + organization_name)
|
|
200
|
-
|
|
201
|
-
---
|
|
202
|
-
|
|
203
|
-
## account_add
|
|
204
|
-
|
|
205
|
-
添加广告账户到项目。⚠️ 必须先调用 `account_discover`,只接受其返回的账户 ID。需 `--yes` 确认。
|
|
206
|
-
|
|
207
|
-
**前置依赖:** config_list → account_organizations → account_discover
|
|
208
|
-
|
|
209
|
-
**CLI:**
|
|
210
|
-
```bash
|
|
211
|
-
vhcli project account-add \
|
|
212
|
-
--customer-project-id <int> \
|
|
213
|
-
--platform <Meta|TikTok|Google|Impact|Snapchat|Awin|Adjust|AppsFlyer> \
|
|
214
|
-
--ads-account-list '<json>' \
|
|
215
|
-
--yes
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
**参数:**
|
|
219
|
-
|
|
220
|
-
| 参数 | 类型 | 必填 | 说明 |
|
|
221
|
-
|------|------|------|------|
|
|
222
|
-
| customer_project_id | int32 | ✅ | 客户项目 ID |
|
|
223
|
-
| platform | string | ✅ | 平台 |
|
|
224
|
-
| ads_account_list | []AdsAccountEntry | ✅ | [{account_id, account_name, authorization_id, organization_id, medium}] |
|
|
225
|
-
|
|
226
|
-
**响应:** CommonResponse
|
|
227
|
-
|
|
228
|
-
---
|
|
229
|
-
|
|
230
|
-
## account_enable / account_disable
|
|
231
|
-
|
|
232
|
-
启用/禁用项目中的广告账户。需项目管理员权限。
|
|
233
|
-
|
|
234
|
-
**CLI:**
|
|
235
|
-
```bash
|
|
236
|
-
vhcli project account-enable --customer-project-id <int> --ads-account-list <id1,id2>
|
|
237
|
-
vhcli project account-disable --customer-project-id <int> --ads-account-list <id1,id2>
|
|
238
|
-
```
|
|
239
|
-
|
|
240
|
-
**参数:**
|
|
241
|
-
|
|
242
|
-
| 参数 | 类型 | 必填 | 说明 |
|
|
243
|
-
|------|------|------|------|
|
|
244
|
-
| customer_project_id | int32 | ✅ | 客户项目 ID |
|
|
245
|
-
| ads_account_list | []string | ✅ | 要操作的账户 ID 列表 |
|
|
246
|
-
|
|
247
|
-
**响应:** CommonResponse
|
|
248
|
-
|
|
249
|
-
---
|
|
250
|
-
|
|
251
|
-
## account_remove
|
|
252
|
-
|
|
253
|
-
从项目中移除广告账户。⚠️ 需项目管理员权限,需 `--yes` 确认。
|
|
254
|
-
|
|
255
|
-
**CLI:**
|
|
256
|
-
```bash
|
|
257
|
-
vhcli project account-remove \
|
|
258
|
-
--customer-project-id <int> \
|
|
259
|
-
--ads-account-list <id1,id2> \
|
|
260
|
-
--platform <Meta|TikTok|Google|Impact|Snapchat|Awin> \
|
|
261
|
-
--yes
|
|
262
|
-
```
|
|
263
|
-
|
|
264
|
-
**参数:**
|
|
265
|
-
|
|
266
|
-
| 参数 | 类型 | 必填 | 说明 |
|
|
267
|
-
|------|------|------|------|
|
|
268
|
-
| customer_project_id | int32 | ✅ | 客户项目 ID |
|
|
269
|
-
| ads_account_list | []string | ✅ | 要移除的账户 ID |
|
|
270
|
-
| platform | string | ✅ | 平台 |
|
|
271
|
-
|
|
272
|
-
**响应:** CommonResponse
|
|
273
|
-
|
|
274
|
-
---
|
|
275
|
-
|
|
276
|
-
## members_list
|
|
277
|
-
|
|
278
|
-
列出项目成员。
|
|
279
|
-
|
|
280
|
-
**CLI:**
|
|
281
|
-
```bash
|
|
282
|
-
vhcli project members-list --customer-project-id <int> [--keyword <search>] [--page-num 1] [--page-size 20]
|
|
283
|
-
```
|
|
284
|
-
|
|
285
|
-
**参数:**
|
|
286
|
-
|
|
287
|
-
| 参数 | 类型 | 必填 | 默认 | 说明 |
|
|
288
|
-
|------|------|------|------|------|
|
|
289
|
-
| customer_project_id | int32 | ✅ | | 客户项目 ID |
|
|
290
|
-
| keyword | string | | | 搜索关键词 |
|
|
291
|
-
| page_num | int32 | | 1 | 页码 |
|
|
292
|
-
| page_size | int32 | | 20 | 每页条数 |
|
|
293
|
-
|
|
294
|
-
**响应:** MembersListData(含 list + pagination)
|
|
295
|
-
|
|
296
|
-
---
|
|
297
|
-
|
|
298
|
-
## members_add
|
|
299
|
-
|
|
300
|
-
添加成员到项目(幂等)。需项目管理员权限。
|
|
301
|
-
|
|
302
|
-
**CLI:**
|
|
303
|
-
```bash
|
|
304
|
-
vhcli project members-add --customer-project-id <int> --user-ids <id1,id2>
|
|
305
|
-
```
|
|
306
|
-
|
|
307
|
-
**参数:**
|
|
308
|
-
|
|
309
|
-
| 参数 | 类型 | 必填 | 说明 |
|
|
310
|
-
|------|------|------|------|
|
|
311
|
-
| customer_project_id | int32 | ✅ | 客户项目 ID |
|
|
312
|
-
| user_ids | []int32 | ✅ | 要添加的用户 ID 列表 |
|
|
313
|
-
|
|
314
|
-
**响应:** CommonResponse
|
|
315
|
-
|
|
316
|
-
---
|
|
317
|
-
|
|
318
|
-
## members_remove
|
|
319
|
-
|
|
320
|
-
从项目移除成员。⚠️ 需项目管理员权限,需 `--yes` 确认。
|
|
321
|
-
|
|
322
|
-
**CLI:**
|
|
323
|
-
```bash
|
|
324
|
-
vhcli project members-remove --customer-project-id <int> --user-id <int> --yes
|
|
325
|
-
```
|
|
326
|
-
|
|
327
|
-
**参数:**
|
|
328
|
-
|
|
329
|
-
| 参数 | 类型 | 必填 | 说明 |
|
|
330
|
-
|------|------|------|------|
|
|
331
|
-
| customer_project_id | int32 | ✅ | 客户项目 ID |
|
|
332
|
-
| user_id | int32 | ✅ | 要移除的用户 ID |
|
|
333
|
-
|
|
334
|
-
**响应:** CommonResponse
|
|
335
|
-
|
|
336
|
-
---
|
|
337
|
-
|
|
338
|
-
## members_update_role
|
|
339
|
-
|
|
340
|
-
更新成员角色。需项目管理员权限。
|
|
341
|
-
|
|
342
|
-
**CLI:**
|
|
343
|
-
```bash
|
|
344
|
-
vhcli project members-update-role --customer-project-id <int> --user-id <int> --role <admin|user>
|
|
345
|
-
```
|
|
346
|
-
|
|
347
|
-
**参数:**
|
|
348
|
-
|
|
349
|
-
| 参数 | 类型 | 必填 | 说明 |
|
|
350
|
-
|------|------|------|------|
|
|
351
|
-
| customer_project_id | int32 | ✅ | 客户项目 ID |
|
|
352
|
-
| user_id | int32 | ✅ | 用户 ID |
|
|
353
|
-
| role | string | ✅ | 新角色(admin / user) |
|
|
354
|
-
|
|
355
|
-
**响应:** CommonResponse
|
|
356
|
-
|
|
357
|
-
---
|
|
358
|
-
|
|
359
|
-
## members_roles
|
|
360
|
-
|
|
361
|
-
获取可分配的角色列表。
|
|
362
|
-
|
|
363
|
-
**CLI:**
|
|
364
|
-
```bash
|
|
365
|
-
vhcli project members-roles
|
|
366
|
-
```
|
|
367
|
-
|
|
368
|
-
**响应:** []RoleItem(含 role_key + role_name)
|
|
369
|
-
|
|
370
|
-
---
|
|
371
|
-
|
|
372
|
-
## members_transfer_owner
|
|
373
|
-
|
|
374
|
-
转让项目所有权。⚠️ 需项目所有者权限,需 `--yes` 确认。
|
|
375
|
-
|
|
376
|
-
**CLI:**
|
|
377
|
-
```bash
|
|
378
|
-
vhcli project members-transfer-owner --customer-project-id <int> --new-owner-id <int64> [--transfer-reason <text>] --yes
|
|
379
|
-
```
|
|
380
|
-
|
|
381
|
-
**参数:**
|
|
382
|
-
|
|
383
|
-
| 参数 | 类型 | 必填 | 说明 |
|
|
384
|
-
|------|------|------|------|
|
|
385
|
-
| customer_project_id | int32 | ✅ | 客户项目 ID |
|
|
386
|
-
| new_owner_id | int64 | ✅ | 新所有者用户 ID |
|
|
387
|
-
| transfer_reason | string | | 转让原因 |
|
|
388
|
-
|
|
389
|
-
**响应:** CommonResponse
|
|
390
|
-
|
|
391
|
-
---
|
|
392
|
-
|
|
393
|
-
## switch_list
|
|
394
|
-
|
|
395
|
-
获取项目功能开关列表。
|
|
396
|
-
|
|
397
|
-
**CLI:**
|
|
398
|
-
```bash
|
|
399
|
-
vhcli project switch-list --customer-project-id <int> [--switch-key material_report,adjust_report]
|
|
400
|
-
```
|
|
401
|
-
|
|
402
|
-
**参数:**
|
|
403
|
-
|
|
404
|
-
| 参数 | 类型 | 必填 | 说明 |
|
|
405
|
-
|------|------|------|------|
|
|
406
|
-
| customer_project_id | int32 | ✅ | 客户项目 ID |
|
|
407
|
-
| switch_key | []string | | 过滤开关:material_report / adjust_report / appsflyer_report / chat_analysis / affiliate_anomaly_det / affiliate_operator |
|
|
408
|
-
|
|
409
|
-
**响应:** SwitchListData(含 list)
|
|
410
|
-
|
|
411
|
-
---
|
|
412
|
-
|
|
413
|
-
## switch_save
|
|
414
|
-
|
|
415
|
-
保存项目功能开关。需项目管理员权限。
|
|
416
|
-
|
|
417
|
-
**CLI:**
|
|
418
|
-
```bash
|
|
419
|
-
vhcli project switch-save \
|
|
420
|
-
--customer-project-id <int> \
|
|
421
|
-
--switch-key <key> \
|
|
422
|
-
--switch-status <enable|disable> \
|
|
423
|
-
[--switch-value <value>]
|
|
424
|
-
```
|
|
425
|
-
|
|
426
|
-
**参数:**
|
|
427
|
-
|
|
428
|
-
| 参数 | 类型 | 必填 | 说明 |
|
|
429
|
-
|------|------|------|------|
|
|
430
|
-
| customer_project_id | int32 | ✅ | 客户项目 ID |
|
|
431
|
-
| switch_key | string | ✅ | 开关名 |
|
|
432
|
-
| switch_status | string | ✅ | enable / disable |
|
|
433
|
-
| switch_value | string | | 开关值(取决于类型) |
|
|
434
|
-
|
|
435
|
-
**响应:** CommonResponse
|