# 外部平台登录与权限就绪检查 类型:`diagnostic-tool` 风险:`medium` ## 诊断流程样例 ### 场景 用户要求把 Get笔记接入 Codex,并希望后续能直接读写笔记。 ### 工具入口 ```bash python scripts/external_platform_readiness_doctor.py \ --platform getnote \ --task write \ --target https://getbiji.com/openapi/health ``` ### 输入来源 - `~/.codex/secret.env`:检查 `GETNOTE_API_KEY`、`GETNOTE_CLIENT_ID` 是否存在。 - `~/.codex/external-platforms.json`:读取 Get笔记 smoke endpoint、会员权益检查规则、错误码映射。 - 内嵌浏览器:只判断是否遇到登录、验证码、授权按钮,不采集敏感凭证。 ### 核心检查 | 步骤 | 检查内容 | 成功信号 | 失败信号 | |---|---|---|---| | 1 | 环境变量 | key 和 client id 存在 | `AUTH_MISSING` | | 2 | API 鉴权 | 返回 2xx 或可识别业务响应 | 401/403/签名错误 | | 3 | 会员权益 | 返回有 OpenAPI 权限 | `ENTITLEMENT_BLOCKED: not_member` | | 4 | 浏览器授权 | 已登录且授权完成 | `USER_ACTION_REQUIRED: sms_or_mfa` | | 5 | 写入 smoke | 创建测试笔记成功并清理 | `WRITE_BLOCKED` | ### 输出样例 ```json { "platform": "getnote", "status": "ENTITLEMENT_BLOCKED", "ready": false, "auth": "ok", "entitlement": "not_member", "next_action": "账号已授权,但需要开通 OpenAPI 会员后才能读写笔记。" } ``` ### 交接结论 不是 skill 安装失败,也不是 API key 未写入;阻塞点是平台会员权益。父任务可以继续保留 skill,但不能承诺当前账号已经具备读写能力。