@vocmarket/voc-skill 0.3.17 → 0.3.18
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.
|
@@ -1,24 +1,27 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.
|
|
3
|
-
"updatedAt": "2026-06-
|
|
2
|
+
"version": "1.1.0",
|
|
3
|
+
"updatedAt": "2026-06-22",
|
|
4
4
|
"gateway": {
|
|
5
5
|
"social": {
|
|
6
6
|
"baseUrl": "https://server.fmode.cn/api/voc-social",
|
|
7
7
|
"auth": "Authorization: Bearer <r: 开头的会话 token>",
|
|
8
|
-
"upstream": "
|
|
8
|
+
"upstream": "我们的中转网关(已封装请求头,直接中转,对外不暴露具体数据供应商)。",
|
|
9
9
|
"billing": "每次转发调用扣除 1 次社交平台 API 额度(缓存命中也会计费)。",
|
|
10
|
-
"note": "这是一个通用转发网关:任意 proxyPath
|
|
11
|
-
"rawPathHint": "
|
|
10
|
+
"note": "这是一个通用转发网关:任意 proxyPath 都会被透传到我们的中转上游。本清单列出已验证的抖音、小红书常用接口;未列出的接口可以直接用 voc_api_call 传 rawPath + method + params 调用,无需改代码。",
|
|
11
|
+
"rawPathHint": "调用未在清单中的接口时,把相对路径填到 voc_api_call 的 rawPath,例如 douyin/search/fetch_general_search_v2,并按对应平台的参数规则拼 query/body。"
|
|
12
12
|
}
|
|
13
13
|
},
|
|
14
14
|
"platforms": [
|
|
15
|
-
{
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
{
|
|
21
|
-
|
|
15
|
+
{
|
|
16
|
+
"key": "douyin",
|
|
17
|
+
"label": "抖音",
|
|
18
|
+
"status": "verified"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"key": "xiaohongshu",
|
|
22
|
+
"label": "小红书",
|
|
23
|
+
"status": "verified"
|
|
24
|
+
}
|
|
22
25
|
],
|
|
23
26
|
"endpoints": [
|
|
24
27
|
{
|
|
@@ -26,118 +29,937 @@
|
|
|
26
29
|
"platform": "douyin",
|
|
27
30
|
"channel": "social",
|
|
28
31
|
"title": "抖音综合搜索",
|
|
29
|
-
"summary": "
|
|
32
|
+
"summary": "按关键词做抖音综合搜索(视频/用户/话题混合)。任意行业/方向关键词均可用于趋势与 VOC 选题采集。",
|
|
30
33
|
"proxyPath": "douyin/search/fetch_general_search_v2",
|
|
31
34
|
"method": "POST",
|
|
32
35
|
"paramsIn": "body",
|
|
36
|
+
"tags": [
|
|
37
|
+
"抖音",
|
|
38
|
+
"douyin",
|
|
39
|
+
"搜索",
|
|
40
|
+
"search",
|
|
41
|
+
"综合",
|
|
42
|
+
"视频",
|
|
43
|
+
"关键词",
|
|
44
|
+
"voc",
|
|
45
|
+
"趋势"
|
|
46
|
+
],
|
|
47
|
+
"params": [
|
|
48
|
+
{
|
|
49
|
+
"name": "keyword",
|
|
50
|
+
"in": "body",
|
|
51
|
+
"type": "string",
|
|
52
|
+
"required": true,
|
|
53
|
+
"desc": "搜索关键词,任意行业/方向均可,例如 股权律师、医美 玻尿酸、少儿编程、新能源汽车。"
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"name": "cursor",
|
|
57
|
+
"in": "body",
|
|
58
|
+
"type": "integer",
|
|
59
|
+
"required": false,
|
|
60
|
+
"default": 0,
|
|
61
|
+
"desc": "分页偏移游标,首页为 0,翻页用上一次返回的 cursor。"
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"name": "sort_type",
|
|
65
|
+
"in": "body",
|
|
66
|
+
"type": "string",
|
|
67
|
+
"required": false,
|
|
68
|
+
"default": "0",
|
|
69
|
+
"desc": "排序:0 综合,1 最多点赞,2 最新发布。"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"name": "publish_time",
|
|
73
|
+
"in": "body",
|
|
74
|
+
"type": "string",
|
|
75
|
+
"required": false,
|
|
76
|
+
"default": "0",
|
|
77
|
+
"desc": "发布时间:0 不限,1 一天内,7 一周内,180 半年内。"
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"name": "filter_duration",
|
|
81
|
+
"in": "body",
|
|
82
|
+
"type": "string",
|
|
83
|
+
"required": false,
|
|
84
|
+
"default": "0",
|
|
85
|
+
"desc": "时长筛选:0 不限,0-1 一分钟内,1-5 一到五分钟,5-10000 五分钟以上。"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"name": "content_type",
|
|
89
|
+
"in": "body",
|
|
90
|
+
"type": "string",
|
|
91
|
+
"required": false,
|
|
92
|
+
"default": "0",
|
|
93
|
+
"desc": "内容类型:0 不限,1 视频,2 图集,3 文章。"
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"name": "search_id",
|
|
97
|
+
"in": "body",
|
|
98
|
+
"type": "string",
|
|
99
|
+
"required": false,
|
|
100
|
+
"default": "",
|
|
101
|
+
"desc": "连续翻页时透传上一次返回的 search_id。"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"name": "backtrace",
|
|
105
|
+
"in": "body",
|
|
106
|
+
"type": "string",
|
|
107
|
+
"required": false,
|
|
108
|
+
"default": "",
|
|
109
|
+
"desc": "连续翻页时透传上一次返回的 backtrace。"
|
|
110
|
+
}
|
|
111
|
+
],
|
|
112
|
+
"responseHint": "data 下为搜索结果列表,含视频 aweme_id、作者、标题、互动数;翻页用返回的 cursor/search_id。"
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"id": "douyin.search_video",
|
|
116
|
+
"platform": "douyin",
|
|
117
|
+
"channel": "social",
|
|
118
|
+
"title": "抖音视频搜索",
|
|
119
|
+
"summary": "按关键词只搜索抖音视频。适合按词采集相关短视频做内容/口碑分析。",
|
|
120
|
+
"proxyPath": "douyin/search/fetch_video_search_v2",
|
|
121
|
+
"method": "POST",
|
|
122
|
+
"paramsIn": "body",
|
|
123
|
+
"tags": [
|
|
124
|
+
"抖音",
|
|
125
|
+
"douyin",
|
|
126
|
+
"视频",
|
|
127
|
+
"video",
|
|
128
|
+
"搜索",
|
|
129
|
+
"search",
|
|
130
|
+
"关键词"
|
|
131
|
+
],
|
|
132
|
+
"params": [
|
|
133
|
+
{
|
|
134
|
+
"name": "keyword",
|
|
135
|
+
"in": "body",
|
|
136
|
+
"type": "string",
|
|
137
|
+
"required": true,
|
|
138
|
+
"desc": "搜索关键词,任意行业/方向均可,例如 股权律师、医美 玻尿酸、少儿编程、新能源汽车。"
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"name": "cursor",
|
|
142
|
+
"in": "body",
|
|
143
|
+
"type": "integer",
|
|
144
|
+
"required": false,
|
|
145
|
+
"default": 0,
|
|
146
|
+
"desc": "分页偏移游标,首页为 0,翻页用上一次返回的 cursor。"
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"name": "sort_type",
|
|
150
|
+
"in": "body",
|
|
151
|
+
"type": "string",
|
|
152
|
+
"required": false,
|
|
153
|
+
"default": "0",
|
|
154
|
+
"desc": "排序:0 综合,1 最多点赞,2 最新发布。"
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"name": "publish_time",
|
|
158
|
+
"in": "body",
|
|
159
|
+
"type": "string",
|
|
160
|
+
"required": false,
|
|
161
|
+
"default": "0",
|
|
162
|
+
"desc": "发布时间:0 不限,1 一天内,7 一周内,180 半年内。"
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
"name": "filter_duration",
|
|
166
|
+
"in": "body",
|
|
167
|
+
"type": "string",
|
|
168
|
+
"required": false,
|
|
169
|
+
"default": "0",
|
|
170
|
+
"desc": "时长筛选:0 不限,0-1 一分钟内,1-5 一到五分钟,5-10000 五分钟以上。"
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
"name": "content_type",
|
|
174
|
+
"in": "body",
|
|
175
|
+
"type": "string",
|
|
176
|
+
"required": false,
|
|
177
|
+
"default": "0",
|
|
178
|
+
"desc": "内容类型:0 不限,1 视频,2 图集,3 文章。"
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
"name": "search_id",
|
|
182
|
+
"in": "body",
|
|
183
|
+
"type": "string",
|
|
184
|
+
"required": false,
|
|
185
|
+
"default": "",
|
|
186
|
+
"desc": "连续翻页时透传上一次返回的 search_id。"
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
"name": "backtrace",
|
|
190
|
+
"in": "body",
|
|
191
|
+
"type": "string",
|
|
192
|
+
"required": false,
|
|
193
|
+
"default": "",
|
|
194
|
+
"desc": "连续翻页时透传上一次返回的 backtrace。"
|
|
195
|
+
}
|
|
196
|
+
],
|
|
197
|
+
"responseHint": "返回视频列表,含 aweme_id、作者、统计数据;翻页用 cursor/search_id。"
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
"id": "douyin.search_user",
|
|
201
|
+
"platform": "douyin",
|
|
202
|
+
"channel": "social",
|
|
203
|
+
"title": "抖音用户搜索",
|
|
204
|
+
"summary": "按关键词搜索抖音用户/账号,定位某行业的达人或竞品账号。",
|
|
205
|
+
"proxyPath": "douyin/search/fetch_user_search_v2",
|
|
206
|
+
"method": "POST",
|
|
207
|
+
"paramsIn": "body",
|
|
208
|
+
"tags": [
|
|
209
|
+
"抖音",
|
|
210
|
+
"douyin",
|
|
211
|
+
"用户",
|
|
212
|
+
"user",
|
|
213
|
+
"账号",
|
|
214
|
+
"搜索",
|
|
215
|
+
"search",
|
|
216
|
+
"达人",
|
|
217
|
+
"kol"
|
|
218
|
+
],
|
|
33
219
|
"params": [
|
|
34
|
-
{
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
{
|
|
220
|
+
{
|
|
221
|
+
"name": "keyword",
|
|
222
|
+
"in": "body",
|
|
223
|
+
"type": "string",
|
|
224
|
+
"required": true,
|
|
225
|
+
"desc": "搜索关键词(账号名/行业词)。"
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
"name": "cursor",
|
|
229
|
+
"in": "body",
|
|
230
|
+
"type": "integer",
|
|
231
|
+
"required": false,
|
|
232
|
+
"default": 0,
|
|
233
|
+
"desc": "分页偏移游标,首页为 0。"
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
"name": "search_id",
|
|
237
|
+
"in": "body",
|
|
238
|
+
"type": "string",
|
|
239
|
+
"required": false,
|
|
240
|
+
"default": "",
|
|
241
|
+
"desc": "连续翻页时透传上一次返回的 search_id。"
|
|
242
|
+
}
|
|
42
243
|
],
|
|
43
|
-
"
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
"
|
|
244
|
+
"responseHint": "返回用户列表,含 sec_user_id、昵称、粉丝数;sec_user_id 可继续用于 user_profile / user_posts。"
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
"id": "douyin.video_detail",
|
|
248
|
+
"platform": "douyin",
|
|
249
|
+
"channel": "social",
|
|
250
|
+
"title": "抖音视频详情",
|
|
251
|
+
"summary": "按视频 id 获取单个抖音视频的完整数据(标题、作者、统计、视频地址等)。",
|
|
252
|
+
"proxyPath": "douyin/app/v3/fetch_one_video",
|
|
253
|
+
"method": "GET",
|
|
254
|
+
"paramsIn": "query",
|
|
255
|
+
"tags": [
|
|
256
|
+
"抖音",
|
|
257
|
+
"douyin",
|
|
258
|
+
"视频",
|
|
259
|
+
"video",
|
|
260
|
+
"详情",
|
|
261
|
+
"detail",
|
|
262
|
+
"aweme"
|
|
263
|
+
],
|
|
264
|
+
"params": [
|
|
265
|
+
{
|
|
266
|
+
"name": "aweme_id",
|
|
267
|
+
"in": "query",
|
|
268
|
+
"type": "string",
|
|
269
|
+
"required": true,
|
|
270
|
+
"desc": "视频 id(aweme_id),来自搜索/评论返回。"
|
|
271
|
+
}
|
|
272
|
+
],
|
|
273
|
+
"responseHint": "返回单个视频对象,含统计、作者、话题、视频/图集地址。"
|
|
47
274
|
},
|
|
48
275
|
{
|
|
49
276
|
"id": "douyin.video_comments",
|
|
50
277
|
"platform": "douyin",
|
|
51
278
|
"channel": "social",
|
|
52
279
|
"title": "抖音视频评论列表",
|
|
53
|
-
"summary": "
|
|
280
|
+
"summary": "按视频 id 拉取抖音视频的一级评论。VOC 主力接口:采集用户真实评论。",
|
|
54
281
|
"proxyPath": "douyin/app/v3/fetch_video_comments",
|
|
55
282
|
"method": "GET",
|
|
56
283
|
"paramsIn": "query",
|
|
284
|
+
"tags": [
|
|
285
|
+
"抖音",
|
|
286
|
+
"douyin",
|
|
287
|
+
"评论",
|
|
288
|
+
"comment",
|
|
289
|
+
"voc",
|
|
290
|
+
"口碑",
|
|
291
|
+
"视频"
|
|
292
|
+
],
|
|
57
293
|
"params": [
|
|
58
|
-
{
|
|
59
|
-
|
|
60
|
-
|
|
294
|
+
{
|
|
295
|
+
"name": "aweme_id",
|
|
296
|
+
"in": "query",
|
|
297
|
+
"type": "string",
|
|
298
|
+
"required": true,
|
|
299
|
+
"desc": "视频 id(aweme_id)。"
|
|
300
|
+
},
|
|
301
|
+
{
|
|
302
|
+
"name": "cursor",
|
|
303
|
+
"in": "query",
|
|
304
|
+
"type": "integer",
|
|
305
|
+
"required": false,
|
|
306
|
+
"default": 0,
|
|
307
|
+
"desc": "分页游标,首页为 0,翻页用上一次返回的 cursor。"
|
|
308
|
+
},
|
|
309
|
+
{
|
|
310
|
+
"name": "count",
|
|
311
|
+
"in": "query",
|
|
312
|
+
"type": "integer",
|
|
313
|
+
"required": false,
|
|
314
|
+
"default": 20,
|
|
315
|
+
"desc": "每页数量,建议 20。"
|
|
316
|
+
}
|
|
61
317
|
],
|
|
62
|
-
"
|
|
63
|
-
"billing": 1,
|
|
64
|
-
"responseHint": "返回评论列表,含评论文本、点赞数、cid(用于拉取楼中楼回复)。",
|
|
65
|
-
"example": { "aweme_id": "7300000000000000000", "cursor": 0, "count": 20 }
|
|
318
|
+
"responseHint": "返回评论列表,含 comment_id、文本、点赞、子评论数;翻页用返回的 cursor。"
|
|
66
319
|
},
|
|
67
320
|
{
|
|
68
321
|
"id": "douyin.comment_replies",
|
|
69
322
|
"platform": "douyin",
|
|
70
323
|
"channel": "social",
|
|
71
|
-
"title": "
|
|
72
|
-
"summary": "按视频
|
|
324
|
+
"title": "抖音评论回复",
|
|
325
|
+
"summary": "按视频 id + 评论 id 拉取某条评论下的回复(楼中楼),用于深挖讨论。",
|
|
73
326
|
"proxyPath": "douyin/app/v3/fetch_video_comment_replies",
|
|
74
327
|
"method": "GET",
|
|
75
328
|
"paramsIn": "query",
|
|
329
|
+
"tags": [
|
|
330
|
+
"抖音",
|
|
331
|
+
"douyin",
|
|
332
|
+
"评论",
|
|
333
|
+
"回复",
|
|
334
|
+
"reply",
|
|
335
|
+
"comment",
|
|
336
|
+
"楼中楼",
|
|
337
|
+
"voc"
|
|
338
|
+
],
|
|
339
|
+
"params": [
|
|
340
|
+
{
|
|
341
|
+
"name": "item_id",
|
|
342
|
+
"in": "query",
|
|
343
|
+
"type": "string",
|
|
344
|
+
"required": true,
|
|
345
|
+
"desc": "视频 id(aweme_id)。"
|
|
346
|
+
},
|
|
347
|
+
{
|
|
348
|
+
"name": "comment_id",
|
|
349
|
+
"in": "query",
|
|
350
|
+
"type": "string",
|
|
351
|
+
"required": true,
|
|
352
|
+
"desc": "一级评论 id,来自 video_comments 返回。"
|
|
353
|
+
},
|
|
354
|
+
{
|
|
355
|
+
"name": "cursor",
|
|
356
|
+
"in": "query",
|
|
357
|
+
"type": "integer",
|
|
358
|
+
"required": false,
|
|
359
|
+
"default": 0,
|
|
360
|
+
"desc": "分页游标,首页为 0。"
|
|
361
|
+
},
|
|
362
|
+
{
|
|
363
|
+
"name": "count",
|
|
364
|
+
"in": "query",
|
|
365
|
+
"type": "integer",
|
|
366
|
+
"required": false,
|
|
367
|
+
"default": 20,
|
|
368
|
+
"desc": "每页数量,建议 20。"
|
|
369
|
+
}
|
|
370
|
+
],
|
|
371
|
+
"responseHint": "返回某条评论的回复列表;翻页用返回的 cursor。"
|
|
372
|
+
},
|
|
373
|
+
{
|
|
374
|
+
"id": "douyin.user_profile",
|
|
375
|
+
"platform": "douyin",
|
|
376
|
+
"channel": "social",
|
|
377
|
+
"title": "抖音用户主页信息",
|
|
378
|
+
"summary": "按 sec_user_id 获取抖音用户主页资料(昵称、签名、粉丝/获赞等)。",
|
|
379
|
+
"proxyPath": "douyin/app/v3/handler_user_profile",
|
|
380
|
+
"method": "GET",
|
|
381
|
+
"paramsIn": "query",
|
|
382
|
+
"tags": [
|
|
383
|
+
"抖音",
|
|
384
|
+
"douyin",
|
|
385
|
+
"用户",
|
|
386
|
+
"user",
|
|
387
|
+
"主页",
|
|
388
|
+
"profile",
|
|
389
|
+
"达人",
|
|
390
|
+
"竞品"
|
|
391
|
+
],
|
|
392
|
+
"params": [
|
|
393
|
+
{
|
|
394
|
+
"name": "sec_user_id",
|
|
395
|
+
"in": "query",
|
|
396
|
+
"type": "string",
|
|
397
|
+
"required": true,
|
|
398
|
+
"desc": "用户 sec_user_id,来自 search_user 或视频返回。"
|
|
399
|
+
}
|
|
400
|
+
],
|
|
401
|
+
"responseHint": "返回用户资料对象,含粉丝数、获赞数、作品数、签名。"
|
|
402
|
+
},
|
|
403
|
+
{
|
|
404
|
+
"id": "douyin.user_posts",
|
|
405
|
+
"platform": "douyin",
|
|
406
|
+
"channel": "social",
|
|
407
|
+
"title": "抖音用户发布视频",
|
|
408
|
+
"summary": "按 sec_user_id 拉取某用户主页发布的视频列表,用于竞品/达人内容盘点。",
|
|
409
|
+
"proxyPath": "douyin/app/v3/fetch_user_post_videos",
|
|
410
|
+
"method": "GET",
|
|
411
|
+
"paramsIn": "query",
|
|
412
|
+
"tags": [
|
|
413
|
+
"抖音",
|
|
414
|
+
"douyin",
|
|
415
|
+
"用户",
|
|
416
|
+
"作品",
|
|
417
|
+
"posts",
|
|
418
|
+
"video",
|
|
419
|
+
"竞品",
|
|
420
|
+
"达人"
|
|
421
|
+
],
|
|
422
|
+
"params": [
|
|
423
|
+
{
|
|
424
|
+
"name": "sec_user_id",
|
|
425
|
+
"in": "query",
|
|
426
|
+
"type": "string",
|
|
427
|
+
"required": true,
|
|
428
|
+
"desc": "用户 sec_user_id。"
|
|
429
|
+
},
|
|
430
|
+
{
|
|
431
|
+
"name": "max_cursor",
|
|
432
|
+
"in": "query",
|
|
433
|
+
"type": "integer",
|
|
434
|
+
"required": false,
|
|
435
|
+
"default": 0,
|
|
436
|
+
"desc": "分页游标,首页为 0,翻页用上一次返回的 max_cursor。"
|
|
437
|
+
},
|
|
438
|
+
{
|
|
439
|
+
"name": "count",
|
|
440
|
+
"in": "query",
|
|
441
|
+
"type": "integer",
|
|
442
|
+
"required": false,
|
|
443
|
+
"default": 20,
|
|
444
|
+
"desc": "每页数量,建议 20。"
|
|
445
|
+
},
|
|
446
|
+
{
|
|
447
|
+
"name": "sort_type",
|
|
448
|
+
"in": "query",
|
|
449
|
+
"type": "integer",
|
|
450
|
+
"required": false,
|
|
451
|
+
"default": 0,
|
|
452
|
+
"desc": "排序类型,0 默认。"
|
|
453
|
+
}
|
|
454
|
+
],
|
|
455
|
+
"responseHint": "返回该用户的视频列表;翻页用返回的 max_cursor。"
|
|
456
|
+
},
|
|
457
|
+
{
|
|
458
|
+
"id": "douyin.video_statistics",
|
|
459
|
+
"platform": "douyin",
|
|
460
|
+
"channel": "social",
|
|
461
|
+
"title": "抖音视频数据统计",
|
|
462
|
+
"summary": "按一个或多个视频 id 获取统计数据(点赞、下载、播放、分享)。",
|
|
463
|
+
"proxyPath": "douyin/app/v3/fetch_video_statistics",
|
|
464
|
+
"method": "GET",
|
|
465
|
+
"paramsIn": "query",
|
|
466
|
+
"tags": [
|
|
467
|
+
"抖音",
|
|
468
|
+
"douyin",
|
|
469
|
+
"统计",
|
|
470
|
+
"statistics",
|
|
471
|
+
"点赞",
|
|
472
|
+
"播放",
|
|
473
|
+
"视频"
|
|
474
|
+
],
|
|
76
475
|
"params": [
|
|
77
|
-
{
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
476
|
+
{
|
|
477
|
+
"name": "aweme_ids",
|
|
478
|
+
"in": "query",
|
|
479
|
+
"type": "string",
|
|
480
|
+
"required": true,
|
|
481
|
+
"desc": "视频 id,多个用逗号分隔(aweme_ids)。"
|
|
482
|
+
}
|
|
81
483
|
],
|
|
82
|
-
"
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
"
|
|
484
|
+
"responseHint": "返回各视频的 like/play/download/share 统计。"
|
|
485
|
+
},
|
|
486
|
+
{
|
|
487
|
+
"id": "douyin.hot_search_list",
|
|
488
|
+
"platform": "douyin",
|
|
489
|
+
"channel": "social",
|
|
490
|
+
"title": "抖音热搜榜",
|
|
491
|
+
"summary": "获取抖音热搜榜单数据,用于选题与趋势监测。",
|
|
492
|
+
"proxyPath": "douyin/app/v3/fetch_hot_search_list",
|
|
493
|
+
"method": "GET",
|
|
494
|
+
"paramsIn": "query",
|
|
495
|
+
"tags": [
|
|
496
|
+
"抖音",
|
|
497
|
+
"douyin",
|
|
498
|
+
"热搜",
|
|
499
|
+
"hot",
|
|
500
|
+
"榜单",
|
|
501
|
+
"趋势",
|
|
502
|
+
"选题"
|
|
503
|
+
],
|
|
504
|
+
"params": [
|
|
505
|
+
{
|
|
506
|
+
"name": "board_type",
|
|
507
|
+
"in": "query",
|
|
508
|
+
"type": "string",
|
|
509
|
+
"required": false,
|
|
510
|
+
"default": "0",
|
|
511
|
+
"desc": "榜单类型,0 默认热榜。"
|
|
512
|
+
},
|
|
513
|
+
{
|
|
514
|
+
"name": "board_sub_type",
|
|
515
|
+
"in": "query",
|
|
516
|
+
"type": "string",
|
|
517
|
+
"required": false,
|
|
518
|
+
"default": "",
|
|
519
|
+
"desc": "榜单子类型,可留空。"
|
|
520
|
+
}
|
|
521
|
+
],
|
|
522
|
+
"responseHint": "返回热搜词条列表,含热度值。"
|
|
86
523
|
},
|
|
87
524
|
{
|
|
88
525
|
"id": "xiaohongshu.search_notes",
|
|
89
526
|
"platform": "xiaohongshu",
|
|
90
527
|
"channel": "social",
|
|
91
528
|
"title": "小红书笔记搜索",
|
|
92
|
-
"summary": "
|
|
529
|
+
"summary": "按关键词搜索小红书笔记。任意行业/方向关键词均可用于 VOC 选题与口碑采集。",
|
|
93
530
|
"proxyPath": "xiaohongshu/app/search_notes",
|
|
94
531
|
"method": "GET",
|
|
95
532
|
"paramsIn": "query",
|
|
533
|
+
"tags": [
|
|
534
|
+
"小红书",
|
|
535
|
+
"xiaohongshu",
|
|
536
|
+
"xhs",
|
|
537
|
+
"笔记",
|
|
538
|
+
"note",
|
|
539
|
+
"搜索",
|
|
540
|
+
"search",
|
|
541
|
+
"关键词",
|
|
542
|
+
"voc"
|
|
543
|
+
],
|
|
96
544
|
"params": [
|
|
97
|
-
{
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
545
|
+
{
|
|
546
|
+
"name": "keyword",
|
|
547
|
+
"in": "query",
|
|
548
|
+
"type": "string",
|
|
549
|
+
"required": true,
|
|
550
|
+
"desc": "搜索关键词,任意行业/方向均可。"
|
|
551
|
+
},
|
|
552
|
+
{
|
|
553
|
+
"name": "page",
|
|
554
|
+
"in": "query",
|
|
555
|
+
"type": "integer",
|
|
556
|
+
"required": true,
|
|
557
|
+
"default": 1,
|
|
558
|
+
"desc": "页码,从 1 开始,翻页递增。"
|
|
559
|
+
},
|
|
560
|
+
{
|
|
561
|
+
"name": "sort_type",
|
|
562
|
+
"in": "query",
|
|
563
|
+
"type": "string",
|
|
564
|
+
"required": false,
|
|
565
|
+
"default": "general",
|
|
566
|
+
"desc": "排序:general 综合,time_descending 最新,popularity_descending 最热。"
|
|
567
|
+
},
|
|
568
|
+
{
|
|
569
|
+
"name": "filter_note_type",
|
|
570
|
+
"in": "query",
|
|
571
|
+
"type": "string",
|
|
572
|
+
"required": false,
|
|
573
|
+
"default": "不限",
|
|
574
|
+
"desc": "笔记类型筛选:不限 / 视频 / 图文。"
|
|
575
|
+
},
|
|
576
|
+
{
|
|
577
|
+
"name": "filter_note_time",
|
|
578
|
+
"in": "query",
|
|
579
|
+
"type": "string",
|
|
580
|
+
"required": false,
|
|
581
|
+
"default": "不限",
|
|
582
|
+
"desc": "发布时间筛选:不限 / 一天内 / 一周内 / 半年内。"
|
|
583
|
+
},
|
|
584
|
+
{
|
|
585
|
+
"name": "search_id",
|
|
586
|
+
"in": "query",
|
|
587
|
+
"type": "string",
|
|
588
|
+
"required": false,
|
|
589
|
+
"default": "",
|
|
590
|
+
"desc": "连续翻页时透传上一次返回的 search_id。"
|
|
591
|
+
},
|
|
592
|
+
{
|
|
593
|
+
"name": "session_id",
|
|
594
|
+
"in": "query",
|
|
595
|
+
"type": "string",
|
|
596
|
+
"required": false,
|
|
597
|
+
"default": "",
|
|
598
|
+
"desc": "连续翻页时透传上一次返回的 session_id。"
|
|
599
|
+
}
|
|
101
600
|
],
|
|
102
|
-
"
|
|
103
|
-
"billing": 1,
|
|
104
|
-
"responseHint": "返回笔记列表,每条含 note_id,可用于拉取详情和评论。",
|
|
105
|
-
"example": { "keyword": "敏感肌护肤", "page": 1, "sort": "popularity_descending", "note_type": "_0" }
|
|
601
|
+
"responseHint": "返回笔记列表,含 note_id、标题、作者、互动数;翻页递增 page 并透传 search_id/session_id。"
|
|
106
602
|
},
|
|
107
603
|
{
|
|
108
604
|
"id": "xiaohongshu.note_detail",
|
|
109
605
|
"platform": "xiaohongshu",
|
|
110
606
|
"channel": "social",
|
|
111
607
|
"title": "小红书笔记详情",
|
|
112
|
-
"summary": "按 note_id
|
|
608
|
+
"summary": "按 note_id(或分享文案)获取小红书笔记完整内容。",
|
|
113
609
|
"proxyPath": "xiaohongshu/app/get_note_info",
|
|
114
610
|
"method": "GET",
|
|
115
611
|
"paramsIn": "query",
|
|
612
|
+
"tags": [
|
|
613
|
+
"小红书",
|
|
614
|
+
"xiaohongshu",
|
|
615
|
+
"xhs",
|
|
616
|
+
"笔记",
|
|
617
|
+
"note",
|
|
618
|
+
"详情",
|
|
619
|
+
"detail"
|
|
620
|
+
],
|
|
116
621
|
"params": [
|
|
117
|
-
{
|
|
622
|
+
{
|
|
623
|
+
"name": "note_id",
|
|
624
|
+
"in": "query",
|
|
625
|
+
"type": "string",
|
|
626
|
+
"required": true,
|
|
627
|
+
"desc": "笔记 id(note_id),来自 search_notes 返回。"
|
|
628
|
+
},
|
|
629
|
+
{
|
|
630
|
+
"name": "share_text",
|
|
631
|
+
"in": "query",
|
|
632
|
+
"type": "string",
|
|
633
|
+
"required": false,
|
|
634
|
+
"default": "",
|
|
635
|
+
"desc": "可选:直接传小红书分享文案/链接,与 note_id 二选一。"
|
|
636
|
+
}
|
|
118
637
|
],
|
|
119
|
-
"
|
|
120
|
-
"billing": 1,
|
|
121
|
-
"responseHint": "返回单条笔记的完整内容。",
|
|
122
|
-
"example": { "note_id": "650000000000000000000000" }
|
|
638
|
+
"responseHint": "返回单条笔记对象,含正文、图片/视频、话题、互动数。"
|
|
123
639
|
},
|
|
124
640
|
{
|
|
125
641
|
"id": "xiaohongshu.note_comments",
|
|
126
642
|
"platform": "xiaohongshu",
|
|
127
643
|
"channel": "social",
|
|
128
644
|
"title": "小红书笔记评论",
|
|
129
|
-
"summary": "按 note_id
|
|
645
|
+
"summary": "按 note_id 拉取小红书笔记的一级评论。VOC 主力接口。",
|
|
130
646
|
"proxyPath": "xiaohongshu/app/get_note_comments",
|
|
131
647
|
"method": "GET",
|
|
132
648
|
"paramsIn": "query",
|
|
649
|
+
"tags": [
|
|
650
|
+
"小红书",
|
|
651
|
+
"xiaohongshu",
|
|
652
|
+
"xhs",
|
|
653
|
+
"评论",
|
|
654
|
+
"comment",
|
|
655
|
+
"voc",
|
|
656
|
+
"口碑"
|
|
657
|
+
],
|
|
658
|
+
"params": [
|
|
659
|
+
{
|
|
660
|
+
"name": "note_id",
|
|
661
|
+
"in": "query",
|
|
662
|
+
"type": "string",
|
|
663
|
+
"required": true,
|
|
664
|
+
"desc": "笔记 id(note_id)。"
|
|
665
|
+
},
|
|
666
|
+
{
|
|
667
|
+
"name": "start",
|
|
668
|
+
"in": "query",
|
|
669
|
+
"type": "string",
|
|
670
|
+
"required": false,
|
|
671
|
+
"default": "",
|
|
672
|
+
"desc": "分页游标,首页留空,翻页用上一次返回的 start。"
|
|
673
|
+
},
|
|
674
|
+
{
|
|
675
|
+
"name": "sort_strategy",
|
|
676
|
+
"in": "query",
|
|
677
|
+
"type": "integer",
|
|
678
|
+
"required": false,
|
|
679
|
+
"default": 1,
|
|
680
|
+
"desc": "排序:1 默认。"
|
|
681
|
+
}
|
|
682
|
+
],
|
|
683
|
+
"responseHint": "返回评论列表,含 comment_id、文本、点赞、子评论数;翻页用返回的 start。"
|
|
684
|
+
},
|
|
685
|
+
{
|
|
686
|
+
"id": "xiaohongshu.sub_comments",
|
|
687
|
+
"platform": "xiaohongshu",
|
|
688
|
+
"channel": "social",
|
|
689
|
+
"title": "小红书评论回复(楼中楼)",
|
|
690
|
+
"summary": "按 note_id + comment_id 拉取某条评论下的回复,用于深挖讨论。",
|
|
691
|
+
"proxyPath": "xiaohongshu/app/get_sub_comments",
|
|
692
|
+
"method": "GET",
|
|
693
|
+
"paramsIn": "query",
|
|
694
|
+
"tags": [
|
|
695
|
+
"小红书",
|
|
696
|
+
"xiaohongshu",
|
|
697
|
+
"xhs",
|
|
698
|
+
"评论",
|
|
699
|
+
"回复",
|
|
700
|
+
"reply",
|
|
701
|
+
"sub",
|
|
702
|
+
"楼中楼",
|
|
703
|
+
"voc"
|
|
704
|
+
],
|
|
705
|
+
"params": [
|
|
706
|
+
{
|
|
707
|
+
"name": "note_id",
|
|
708
|
+
"in": "query",
|
|
709
|
+
"type": "string",
|
|
710
|
+
"required": true,
|
|
711
|
+
"desc": "笔记 id(note_id)。"
|
|
712
|
+
},
|
|
713
|
+
{
|
|
714
|
+
"name": "comment_id",
|
|
715
|
+
"in": "query",
|
|
716
|
+
"type": "string",
|
|
717
|
+
"required": true,
|
|
718
|
+
"desc": "一级评论 id,来自 note_comments 返回。"
|
|
719
|
+
},
|
|
720
|
+
{
|
|
721
|
+
"name": "start",
|
|
722
|
+
"in": "query",
|
|
723
|
+
"type": "string",
|
|
724
|
+
"required": false,
|
|
725
|
+
"default": "",
|
|
726
|
+
"desc": "分页游标,首页留空,翻页用上一次返回的 start。"
|
|
727
|
+
}
|
|
728
|
+
],
|
|
729
|
+
"responseHint": "返回某条评论的回复列表;翻页用返回的 start。"
|
|
730
|
+
},
|
|
731
|
+
{
|
|
732
|
+
"id": "xiaohongshu.user_info",
|
|
733
|
+
"platform": "xiaohongshu",
|
|
734
|
+
"channel": "social",
|
|
735
|
+
"title": "小红书用户信息",
|
|
736
|
+
"summary": "按 user_id 获取小红书用户资料(昵称、简介、粉丝/获赞等)。",
|
|
737
|
+
"proxyPath": "xiaohongshu/app/get_user_info",
|
|
738
|
+
"method": "GET",
|
|
739
|
+
"paramsIn": "query",
|
|
740
|
+
"tags": [
|
|
741
|
+
"小红书",
|
|
742
|
+
"xiaohongshu",
|
|
743
|
+
"xhs",
|
|
744
|
+
"用户",
|
|
745
|
+
"user",
|
|
746
|
+
"信息",
|
|
747
|
+
"profile",
|
|
748
|
+
"达人",
|
|
749
|
+
"竞品"
|
|
750
|
+
],
|
|
751
|
+
"params": [
|
|
752
|
+
{
|
|
753
|
+
"name": "user_id",
|
|
754
|
+
"in": "query",
|
|
755
|
+
"type": "string",
|
|
756
|
+
"required": true,
|
|
757
|
+
"desc": "用户 id(user_id),来自笔记/搜索返回。"
|
|
758
|
+
}
|
|
759
|
+
],
|
|
760
|
+
"responseHint": "返回用户资料对象,含粉丝数、获赞收藏、简介。"
|
|
761
|
+
},
|
|
762
|
+
{
|
|
763
|
+
"id": "xiaohongshu.user_notes",
|
|
764
|
+
"platform": "xiaohongshu",
|
|
765
|
+
"channel": "social",
|
|
766
|
+
"title": "小红书用户发布笔记",
|
|
767
|
+
"summary": "按 user_id 拉取某用户发布的笔记列表,用于竞品/达人内容盘点。",
|
|
768
|
+
"proxyPath": "xiaohongshu/app/get_user_notes",
|
|
769
|
+
"method": "GET",
|
|
770
|
+
"paramsIn": "query",
|
|
771
|
+
"tags": [
|
|
772
|
+
"小红书",
|
|
773
|
+
"xiaohongshu",
|
|
774
|
+
"xhs",
|
|
775
|
+
"用户",
|
|
776
|
+
"笔记",
|
|
777
|
+
"notes",
|
|
778
|
+
"posts",
|
|
779
|
+
"竞品",
|
|
780
|
+
"达人"
|
|
781
|
+
],
|
|
782
|
+
"params": [
|
|
783
|
+
{
|
|
784
|
+
"name": "user_id",
|
|
785
|
+
"in": "query",
|
|
786
|
+
"type": "string",
|
|
787
|
+
"required": true,
|
|
788
|
+
"desc": "用户 id(user_id)。"
|
|
789
|
+
},
|
|
790
|
+
{
|
|
791
|
+
"name": "cursor",
|
|
792
|
+
"in": "query",
|
|
793
|
+
"type": "string",
|
|
794
|
+
"required": false,
|
|
795
|
+
"default": "",
|
|
796
|
+
"desc": "分页游标,首页留空,翻页用上一次返回的 cursor。"
|
|
797
|
+
}
|
|
798
|
+
],
|
|
799
|
+
"responseHint": "返回该用户的笔记列表;翻页用返回的 cursor。"
|
|
800
|
+
},
|
|
801
|
+
{
|
|
802
|
+
"id": "xiaohongshu.topic_notes",
|
|
803
|
+
"platform": "xiaohongshu",
|
|
804
|
+
"channel": "social",
|
|
805
|
+
"title": "小红书话题笔记",
|
|
806
|
+
"summary": "按话题 page_id 拉取该话题下的笔记,用于话题/品类维度的 VOC 采集。",
|
|
807
|
+
"proxyPath": "xiaohongshu/app/get_topic_notes",
|
|
808
|
+
"method": "GET",
|
|
809
|
+
"paramsIn": "query",
|
|
810
|
+
"tags": [
|
|
811
|
+
"小红书",
|
|
812
|
+
"xiaohongshu",
|
|
813
|
+
"xhs",
|
|
814
|
+
"话题",
|
|
815
|
+
"topic",
|
|
816
|
+
"笔记",
|
|
817
|
+
"品类",
|
|
818
|
+
"voc"
|
|
819
|
+
],
|
|
820
|
+
"params": [
|
|
821
|
+
{
|
|
822
|
+
"name": "page_id",
|
|
823
|
+
"in": "query",
|
|
824
|
+
"type": "string",
|
|
825
|
+
"required": true,
|
|
826
|
+
"desc": "话题 page_id。"
|
|
827
|
+
},
|
|
828
|
+
{
|
|
829
|
+
"name": "first_load_time",
|
|
830
|
+
"in": "query",
|
|
831
|
+
"type": "string",
|
|
832
|
+
"required": true,
|
|
833
|
+
"desc": "首次加载时间戳(秒),首次请求传当前时间戳。"
|
|
834
|
+
},
|
|
835
|
+
{
|
|
836
|
+
"name": "sort",
|
|
837
|
+
"in": "query",
|
|
838
|
+
"type": "string",
|
|
839
|
+
"required": false,
|
|
840
|
+
"default": "hot",
|
|
841
|
+
"desc": "排序:hot 最热 / time 最新。"
|
|
842
|
+
},
|
|
843
|
+
{
|
|
844
|
+
"name": "last_note_ct",
|
|
845
|
+
"in": "query",
|
|
846
|
+
"type": "string",
|
|
847
|
+
"required": false,
|
|
848
|
+
"default": "",
|
|
849
|
+
"desc": "翻页透传上一次返回的 last_note_ct。"
|
|
850
|
+
},
|
|
851
|
+
{
|
|
852
|
+
"name": "last_note_id",
|
|
853
|
+
"in": "query",
|
|
854
|
+
"type": "string",
|
|
855
|
+
"required": false,
|
|
856
|
+
"default": "",
|
|
857
|
+
"desc": "翻页透传上一次返回的 last_note_id。"
|
|
858
|
+
},
|
|
859
|
+
{
|
|
860
|
+
"name": "cursor_score",
|
|
861
|
+
"in": "query",
|
|
862
|
+
"type": "string",
|
|
863
|
+
"required": false,
|
|
864
|
+
"default": "",
|
|
865
|
+
"desc": "翻页透传上一次返回的 cursor_score。"
|
|
866
|
+
},
|
|
867
|
+
{
|
|
868
|
+
"name": "session_id",
|
|
869
|
+
"in": "query",
|
|
870
|
+
"type": "string",
|
|
871
|
+
"required": false,
|
|
872
|
+
"default": "",
|
|
873
|
+
"desc": "翻页透传上一次返回的 session_id。"
|
|
874
|
+
}
|
|
875
|
+
],
|
|
876
|
+
"responseHint": "返回话题下笔记列表;翻页透传 last_note_ct/last_note_id/cursor_score/session_id。"
|
|
877
|
+
},
|
|
878
|
+
{
|
|
879
|
+
"id": "xiaohongshu.search_products",
|
|
880
|
+
"platform": "xiaohongshu",
|
|
881
|
+
"channel": "social",
|
|
882
|
+
"title": "小红书商品搜索",
|
|
883
|
+
"summary": "按关键词搜索小红书商品(带价格/服务保障筛选),用于电商相关 VOC。",
|
|
884
|
+
"proxyPath": "xiaohongshu/app/search_products",
|
|
885
|
+
"method": "GET",
|
|
886
|
+
"paramsIn": "query",
|
|
887
|
+
"tags": [
|
|
888
|
+
"小红书",
|
|
889
|
+
"xiaohongshu",
|
|
890
|
+
"xhs",
|
|
891
|
+
"商品",
|
|
892
|
+
"product",
|
|
893
|
+
"电商",
|
|
894
|
+
"搜索",
|
|
895
|
+
"search"
|
|
896
|
+
],
|
|
133
897
|
"params": [
|
|
134
|
-
{
|
|
135
|
-
|
|
898
|
+
{
|
|
899
|
+
"name": "keyword",
|
|
900
|
+
"in": "query",
|
|
901
|
+
"type": "string",
|
|
902
|
+
"required": true,
|
|
903
|
+
"desc": "搜索关键词。"
|
|
904
|
+
},
|
|
905
|
+
{
|
|
906
|
+
"name": "page",
|
|
907
|
+
"in": "query",
|
|
908
|
+
"type": "integer",
|
|
909
|
+
"required": true,
|
|
910
|
+
"default": 1,
|
|
911
|
+
"desc": "页码,从 1 开始。"
|
|
912
|
+
},
|
|
913
|
+
{
|
|
914
|
+
"name": "sort",
|
|
915
|
+
"in": "query",
|
|
916
|
+
"type": "string",
|
|
917
|
+
"required": false,
|
|
918
|
+
"default": "",
|
|
919
|
+
"desc": "排序方式,可留空用默认。"
|
|
920
|
+
},
|
|
921
|
+
{
|
|
922
|
+
"name": "scope",
|
|
923
|
+
"in": "query",
|
|
924
|
+
"type": "string",
|
|
925
|
+
"required": false,
|
|
926
|
+
"default": "",
|
|
927
|
+
"desc": "筛选范围,可留空。"
|
|
928
|
+
},
|
|
929
|
+
{
|
|
930
|
+
"name": "min_price",
|
|
931
|
+
"in": "query",
|
|
932
|
+
"type": "string",
|
|
933
|
+
"required": false,
|
|
934
|
+
"default": "",
|
|
935
|
+
"desc": "最低价筛选,可留空。"
|
|
936
|
+
},
|
|
937
|
+
{
|
|
938
|
+
"name": "max_price",
|
|
939
|
+
"in": "query",
|
|
940
|
+
"type": "string",
|
|
941
|
+
"required": false,
|
|
942
|
+
"default": "",
|
|
943
|
+
"desc": "最高价筛选,可留空。"
|
|
944
|
+
},
|
|
945
|
+
{
|
|
946
|
+
"name": "search_id",
|
|
947
|
+
"in": "query",
|
|
948
|
+
"type": "string",
|
|
949
|
+
"required": false,
|
|
950
|
+
"default": "",
|
|
951
|
+
"desc": "连续翻页时透传上一次返回的 search_id。"
|
|
952
|
+
},
|
|
953
|
+
{
|
|
954
|
+
"name": "session_id",
|
|
955
|
+
"in": "query",
|
|
956
|
+
"type": "string",
|
|
957
|
+
"required": false,
|
|
958
|
+
"default": "",
|
|
959
|
+
"desc": "连续翻页时透传上一次返回的 session_id。"
|
|
960
|
+
}
|
|
136
961
|
],
|
|
137
|
-
"
|
|
138
|
-
"billing": 1,
|
|
139
|
-
"responseHint": "返回笔记评论列表。",
|
|
140
|
-
"example": { "note_id": "650000000000000000000000", "cursor": "" }
|
|
962
|
+
"responseHint": "返回商品列表,含标题、价格、销量、店铺。"
|
|
141
963
|
}
|
|
142
964
|
]
|
|
143
|
-
}
|
|
965
|
+
}
|
|
@@ -39,7 +39,7 @@ async function searchVocApis(input = {}) {
|
|
|
39
39
|
const lines = [
|
|
40
40
|
'## VOC 转发接口清单',
|
|
41
41
|
'',
|
|
42
|
-
`网关:${catalog.gateway?.social?.baseUrl || ''}(通用转发,任意 proxyPath
|
|
42
|
+
`网关:${catalog.gateway?.social?.baseUrl || ''}(通用转发,任意 proxyPath 透传到我们的中转上游;每次调用计费 1 次)。`,
|
|
43
43
|
query ? `匹配关键词「${query}」的接口(${results.length} 条):` : `全部已登记接口(${results.length} 条):`,
|
|
44
44
|
'',
|
|
45
45
|
...results.map(
|
|
@@ -196,14 +196,17 @@ async function callVocApi(input = {}) {
|
|
|
196
196
|
method = endpoint.method;
|
|
197
197
|
const parts = buildRequestParts(endpoint, input);
|
|
198
198
|
if (parts.missing.length) {
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
199
|
+
const missingMessage = `缺少必填参数:${parts.missing.join(', ')}。这不是类目/关键词/余额问题,请补齐参数后再调用(可用 voc_api_doc 查看参数说明)。`;
|
|
200
|
+
return {
|
|
201
|
+
status: 'needs_input',
|
|
202
|
+
assistantMessage: missingMessage,
|
|
203
|
+
summary: { endpoint: endpoint.id, missing: parts.missing },
|
|
204
|
+
data: { endpoint: summarizeEndpoint(endpoint), missing: parts.missing },
|
|
205
|
+
files: [],
|
|
206
|
+
nextActions: ['用 voc_api_doc 核对必填参数', '补齐参数后重新调用'],
|
|
207
|
+
warnings: [],
|
|
208
|
+
errors: [{ message: `缺少必填参数:${parts.missing.join(', ')}`, kind: 'request', httpStatus: 0 }]
|
|
209
|
+
};
|
|
207
210
|
}
|
|
208
211
|
query = parts.query;
|
|
209
212
|
body = parts.body;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vocmarket/voc-skill",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.18",
|
|
4
4
|
"description": "Claude Code VOC intelligence skills for Xiaohongshu and Douyin trend reports, live social VOC collection, Fmode image analysis, single-issue deep dives, boss/operator action plans, and multi-turn memory.",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"bin": {
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: voc-api-catalog
|
|
3
|
-
description: 清单驱动的 VOC
|
|
3
|
+
description: 清单驱动的 VOC 社交数据采集。把所有转发接口做成清单,按需查清单、读参数文档,自己拼参数完成任意行业/任意方向的社交数据采集(目前覆盖抖音、小红书等国内社媒)。当用户要采集某关键词的社交内容/评论、要调用某个社交数据接口、或现有专用工具不覆盖某接口时使用。
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# VOC 接口清单驱动采集
|
|
7
7
|
|
|
8
8
|
## 核心理念
|
|
9
9
|
|
|
10
|
-
VOC 后端是一个**通用转发网关**(`https://server.fmode.cn/api/voc-social/<proxyPath>`),任意 `proxyPath`
|
|
10
|
+
VOC 后端是一个**通用转发网关**(`https://server.fmode.cn/api/voc-social/<proxyPath>`),任意 `proxyPath` 都会被透传到我们的中转上游(请求头已封装,对外不暴露具体数据供应商)。所以不需要为每个接口写死一个工具:你只要
|
|
11
11
|
|
|
12
12
|
1. **查清单**:用 `voc_api_search` 找到要用的接口;
|
|
13
13
|
2. **读参数文档**:用 `voc_api_doc` 读该接口的详细参数;
|