Files
account-manager/references/INTEGRATION.md
chendelian 5afad3285a
Some checks failed
技能自动化发布 / release (push) Failing after 21s
chore: auto release commit (2026-04-06 12:57:26)
2026-04-06 12:57:26 +08:00

2.2 KiB
Raw Permalink Blame History

与其它 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:...

解析协议(强建议)

  1. 读取子进程 stdout 全文或首行。
  2. 若首行以 ERROR: 开头 → 失败,不要 json.loads 整段 stdout。
  3. 若首行以 OK: 开头 → set-login-status 成功(可再检查退出码 0)。
  4. get / list-json / pick-logged-in / pick-web:成功时应对第一行json.loads;后续行应不存在,若有则视为非协议内容。

JSON 对象字段(与 get 一致)

典型字段见仓库 assets/examples/get-response.jsonassets/schemas/account-record.schema.json

常见键名包括:id, name, platform, phone, profile_dir, url, login_status, last_login_at, created_at, updated_atextra_json 列中的扁平扩展可能并入同一对象。

Publisher / 自动化流水线示例

  1. pick-web 搜狐号(或目标平台)→ 解析 JSON → 取 idprofile_dirurl
  2. 若需确认已登录:检查 login_status == 1,否则可引导用户执行 login <id> 或先 open <id> 人工登录。
  3. 外部脚本在确认登录后,可调用 set-login-status <id> 1 保持与库一致(若你们自有检测逻辑)。

退出码

  • set-login-status:失败时进程以 1 退出(见实现)。
  • 其它子命令多数为 0;若需严格编排,请以 stdout 首行前缀JSON 可解析性 为准,不要仅依赖退出码。