Social 网络数据获取
通过本技能内置的迷你 MCP 客户端(scripts/social_mcp_client.py)直连
Social 数据服务,用户无需在连接器/插件管理中安装 MCP server。
每次调用前完成 WorkBuddy 开放平台用户鉴权。
前提条件
- 已配置 Social API Key(二选一):
- 环境变量
SOCIAL_API_KEY;或 - 调用脚本时传
--api-key <key>。 - 若用户尚未配置:告知用户需要向数据服务方申请/确认 API Key,
并说明配置方式(环境变量或调用参数),配置完成后再继续本任务。
用户鉴权(每次调用前必做)
- 调用
connect_open_platform工具,参数传入本技能 id:
skill_id: "social-network-fetch" - 取回短时效开放平台令牌(
op_开头)。 - 该令牌只允许在本次调用链内部流动:
- 禁止向用户展示、复述令牌内容;
- 禁止写入日志、文件、或任何持久化输出;
- 令牌短时效,每次调用重新获取,不得复用上一次的令牌。
数据获取流程
- 鉴权:按上一节调用
connect_open_platform获取op_令牌。 - 确认工具:若不确定有哪些工具可用,先执行:
python3 scripts/social_mcp_client.py --list-tools
根据用户需求(关键词、平台、时间范围、榜单类型等)选择最匹配的工具。 - 调用工具(在技能根目录下执行):
python3 scripts/social_mcp_client.py \ --tool <工具名> \ --args '<工具参数的 JSON>' \ --user-token <op_令牌>
---user-token必传:即第 1 步拿到的op_令牌,脚本会把它放入
工具参数的user_token字段,供服务端识别用户与配额控制;
---api-key缺省时自动读取环境变量SOCIAL_API_KEY;
- 按工具 schema 填写查询参数(如 keyword、platform、start_time、
end_time、limit 等),严格遵循工具定义,不编造参数。 - 结果处理(脚本输出 JSON):
- 输出含error字段或result.isError == true:按错误信息解读,
必要时用--list-tools核对工具名与参数;
-HTTP 401/ 令牌失效:重新调用connect_open_platform获取新令牌,
重试一次;再次失败则告知用户「授权临时失效,请稍后重试」;
-429/QUOTA_EXCEEDED/ 配额相关错误码:告知用户
「该账号数据配额已用尽,请联系管理员」;
- 正常返回:从result.content中提取文本内容,整理数据,
标注来源、平台与时间范围后呈现给用户。 - 收尾:确认输出中不含任何令牌、密钥、请求头内容。
安全注意事项
- 本技能的所有调用凭据来自运行时鉴权,SKILL.md 与 scripts 中
不得出现任何静态密钥或硬编码凭据(脚本默认api_key为空)。 op_令牌只用于服务端识别用户,不落日志、不展示给用户。