2.2 KiB
2.2 KiB
与其它 Skill 集成(account-manager)
推荐调用方式
使用 subprocess 调用技能根目录下的 scripts/main.py,工作目录可为技能根或 scripts/(只要命令中的 python 与路径一致)。宿主注入的 JIANGCHANG_DATA_ROOT / JIANGCHANG_USER_ID 必须与最终用户会话一致,否则读写到错误库。
机器可读命令摘要
| 目的 | 命令 | 成功时 stdout |
|---|---|---|
| 取单条账号 JSON | get <id> |
单行 JSON 对象 |
| 批量账号 JSON | list-json <平台或all> [--limit N] |
单行 JSON 数组 |
| 只要已登录 | pick-logged-in <平台> |
单行 JSON 对象 |
| 自动化候选(优先已登录) | pick-web <平台> |
单行 JSON 对象 |
| 回写登录态 | set-login-status <id> <0或1> |
首行 OK:... |
解析协议(强建议)
- 读取子进程 stdout 全文或首行。
- 若首行以
ERROR:开头 → 失败,不要json.loads整段 stdout。 - 若首行以
OK:开头 →set-login-status成功(可再检查退出码0)。 get/list-json/pick-logged-in/pick-web:成功时应对第一行做json.loads;后续行应不存在,若有则视为非协议内容。
JSON 对象字段(与 get 一致)
典型字段见仓库 assets/examples/get-response.json 与 assets/schemas/account-record.schema.json。
常见键名包括:id, name, platform, phone, profile_dir, url, login_status, last_login_at, created_at, updated_at;extra_json 列中的扁平扩展可能并入同一对象。
Publisher / 自动化流水线示例
pick-web 搜狐号(或目标平台)→ 解析 JSON → 取id、profile_dir、url。- 若需确认已登录:检查
login_status == 1,否则可引导用户执行login <id>或先open <id>人工登录。 - 外部脚本在确认登录后,可调用
set-login-status <id> 1保持与库一致(若你们自有检测逻辑)。
退出码
set-login-status:失败时进程以1退出(见实现)。- 其它子命令多数为
0;若需严格编排,请以 stdout 首行前缀 与 JSON 可解析性 为准,不要仅依赖退出码。