| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- {
- "name": "douyin-user-search",
- "displayName": "抖音用户搜索 V2",
- "description": "按关键词搜索抖音达人/用户,返回匹配的账号列表及基础数据。适用于红人库建设、品类达人批量筛选、竞品代言人定位。",
- "category": "douyin",
- "version": "1.3.0",
- "endpoint": {
- "method": "POST",
- "url": "https://server.fmode.cn/api/voc-social/douyin/search/fetch_user_search_v2",
- "headers": {
- "Authorization": "Bearer r:a5a19ea9868043b15d9b10423234ca43",
- "Content-Type": "application/json",
- "Accept": "application/json"
- }
- },
- "parameters": {
- "type": "object",
- "required": [
- "keyword"
- ],
- "properties": {
- "keyword": {
- "type": "string",
- "description": "搜索关键词,如 '人工智能'、'美妆'"
- },
- "cursor": {
- "type": "integer",
- "description": "翻页游标,首次请求传 0",
- "default": 0
- }
- }
- },
- "requestTransform": {
- "body": {
- "keyword": "{{keyword}}",
- "cursor": "{{cursor}}"
- }
- },
- "response": {
- "type": "object",
- "description": "用户搜索结果",
- "properties": {
- "cursor": {
- "type": "integer",
- "description": "下一页游标"
- },
- "has_more": {
- "type": "integer",
- "description": "是否有更多数据(1=有,0=无)"
- },
- "user_list": {
- "type": "array",
- "description": "用户列表",
- "items": {
- "type": "object",
- "properties": {
- "user_info": {
- "type": "object",
- "description": "用户信息(uid, nickname, unique_id, sec_uid, follower_count, signature 等)"
- }
- }
- }
- }
- }
- },
- "usageExamples": [
- {
- "name": "品类达人批量筛选",
- "input": {
- "keyword": "香薰蜡烛达人",
- "cursor": 0
- },
- "description": "搜索香薰蜡烛品类达人,得到候选名单后用 douyin-user-profile 获取粉丝数评估化"
- },
- {
- "name": "竞品品牌账号搜索",
- "input": {
- "keyword": "竞品品牌名+官方旗舰店",
- "cursor": 0
- },
- "description": "搜索竞品品牌在抖音的官方账号,用于监控其运营动态"
- }
- ],
- "workflow": {
- "description": "推荐调用链",
- "steps": [
- "本步: douyin-user-search(keyword) → 搜索达人/品牌 → 得到 uid、nickname、sec_uid、follower_count",
- "下游: douyin-user-profile(sec_user_id) → 获取账号完整数据和统计",
- "筛选: 按 follower_count 筛选符合粉丝规模要求的达人"
- ]
- },
- "reportMapping": {
- "slides": [
- "社媒聆听(Slide14)"
- ],
- "dataPoints": [
- "品类达人候选列表",
- "粉丝规模分布(头部/腰部/尾部达人)",
- "竞品代言人定位"
- ]
- },
- "timeout": 60000,
- "retry": {
- "maxAttempts": 3,
- "delay": 1500,
- "backoffMultiplier": 2
- },
- "tokenConfig": {
- "type": "bearer",
- "configFile": "~/.openclaw/voc-credentials.json",
- "tokenField": "vocToken",
- "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
- "resolutionOrder": ["configFile", "currentToken"],
- "onMissing": {
- "action": "showPaymentQR",
- "qrCodeUrl": "https://pwa.fmode.cn/apig-pay.html?user={{user}}&apigid={{apigid}}&fun_id=HOkkX72PMF",
- "paymentCheckEndpoint": "https://server.fmode.cn/api/apig/getApig",
- "pollingIntervalMs": 3000,
- "pollingTimeoutMs": 300000,
- "onPaymentSuccess": "retrySkillWithNewToken",
- "title": "扫码开通 VOC-AI 数据服务",
- "message": "请扫描下方二维码完成支付,支付成功后将自动获取 Token 并继续执行。"
- },
- "onBalanceInsufficient": {
- "action": "showPaymentQR",
- "qrCodeUrl": "https://pwa.fmode.cn/apig-pay.html?user={{user}}&apigid={{apigid}}&fun_id=HOkkX72PMF",
- "paymentCheckEndpoint": "https://server.fmode.cn/api/apig/getApig",
- "pollingIntervalMs": 3000,
- "pollingTimeoutMs": 300000,
- "onPaymentSuccess": "retrySkillWithNewToken",
- "title": "VOC-AI Token 余额不足,请扫码充值",
- "message": "当前 Token 余额不足,请扫描二维码充值,支付完成后将自动继续执行。"
- }
- },
- "errorHandling": {
- "balanceInsufficient": {
- "conditions": [
- { "responseField": "code", "operator": "in", "value": [-2, -3, -10, 402, 429] },
- { "responseField": "msg", "operator": "contains", "value": ["余额不足", "insufficient", "balance", "quota"] },
- { "responseField": "message", "operator": "contains", "value": ["余额不足", "insufficient", "balance"] }
- ],
- "matchMode": "any",
- "trigger": "tokenConfig.onBalanceInsufficient"
- },
- "unauthorized": {
- "conditions": [
- { "responseField": "code", "operator": "in", "value": [401, 403] },
- { "responseField": "msg", "operator": "contains", "value": ["unauthorized", "token", "invalid", "auth"] }
- ],
- "matchMode": "any",
- "trigger": "tokenConfig.onMissing"
- }
- }
- }
|