用途:对 Canva Connect 调用失败进行系统化分类,不只看 HTTP 状态码,而是结合端点参考与脱敏后的提供方错误码,区分调用方缺陷、授权失败、限流、预览漂移与提供方故障。
前提:需要 HTTP 状态、提供方错误码、端点模式与 UTC 时间窗;不含负载内容的脱敏请求/资源/任务引用;固定版本的 OpenAPI 或端点文档。
主要步骤:1) 采集最小信封,记录方法、端点模式、状态、提供方码、任务终态、重试元数据与部署版本,排除令牌、正文、签名 URL 和客户标识。2) 认证失败时,序列化授权的刷新流程并原子存储替换后的刷新令牌;撤销或无法恢复的刷新失败后重新授权。3) 授权失败时,将操作与显式授予的 scope、资源归属、能力、租户策略和预览可用性对比,不要假设写 scope 包含对应读 scope。4) 限流时只暂停受影响的端点或用户队列,使用文档化端点元数据与响应指令,否则采用有界指数退避加抖动,而非固定延迟。5) 异步失败时轮询已有任务至文档化终态,先修正校验或权益错误再提交新任务。6) 提供方故障时,将重复的服务端错误与 Canva 状态页/变更日志关联,有界重试耗尽后提供脱敏支持回执。
认证:Canva Connect 使用后端通过 OAuth 2.0 Authorization Code with SHA-256 PKCE 获取的 Bearer 访问令牌,申请显式最小权限 scope,客户端密钥与令牌不得出现在浏览器可见状态,刷新需序列化并原子存储单次使用的替换刷新令牌。
输出:范围明确的决策或实现工件、脱敏操作与校验回执、失败/回滚/后续责任记录。示例:自动填充返回 403 时,检查显式 scope、当前能力与企业版可用性、模板归属、预览状态和提供方错误,再判断是否需要重新授权。
限制:仅依据 HTTP 状态无法行动,须先取得脱敏提供方信封;刷新反复返回 401 应停止并重新授权;429 无重试元数据时使用本地有界退避并降低并发;任务校验失败应修正请求而非原样重试。工具纪律:仅用 Read 与 Grep 做发现和取证,仅对批准工件、代码、配置、测试或回执使用 Write/Edit,不得擅自更改 Canva 侧内容。