跳到主要内容

错误码

错误响应是带有稳定 code 和可读 message 的 JSON。请根据 code 判断,不要依赖可能变化的 message。

{ "error": { "code": "alert_too_long", "message": "…", "field": "alert.title", "limit": 100, "actual": 128 } }
状态码 是否重试
400、413、422 否。先修正请求,原样重发只会得到同样的错误。
401、404 否。链接或 token 错误或已失效。
429、503 是,等待 Retry-After 响应头指定的秒数后重试。
其他 5xx 是,并逐步拉长间隔。带上 idempotency_key,重试就不会产生第二条提醒。
状态码 错误码 接口 含义和处理
400 invalid_json 发送 请求体不是合法的 JSON 或 UTF-8。
400 invalid_request 发送 简单请求的文本、表单、查询字符串或请求头不是合法的 UTF-8 或 URL 编码。
401 invalid_send_url 发送 发送链接错误、已重新生成、已撤销、已暂停,或所属频道已删除。请从应用中复制当前链接。
401 unauthorized 回执 Authorization 请求头里不是发送链接的 token。
403 https_required 发送 请求使用了 http://。请改用 https://;如果网络不可信,请重新生成链接。
404 not_found 回执 这个发送链接没有发送过此 ID 的回执。
404 invalid_heartbeat_url 心跳 心跳链接错误、已重新生成或删除,或所属频道已删除。
405 method_not_allowed 发送 对未允许 GET 请求的发送链接使用了 GET,或使用了 HEAD。
413 request_too_large 发送 请求体超过 64 KB。
415 unsupported_media_type 发送 发送接口不支持该 Content-Type 或 charset。
422 invalid_target 发送 缺少 alert.title,字段值无效或含有不允许的字符,或者简单请求字段不认识、重复出现。field 指明字段。
422 alert_too_long 发送 字段超过限制。错误中包含 field、limit 和 actual。
422 invalid_alert_level 发送 level 不是 urgent、high、normal 或 silent。
422 invalid_emergency 发送 emergency.retry_seconds 小于 30,或 expire_seconds 小于 retry_seconds 或大于 10800。
422 invalid_callback 发送 对无法确认的提醒请求了 callback。
422 callback_not_configured 发送 请求了 callback,但频道没有启用回调。
422 encryption_required 发送 频道只接受加密提醒。
422 invalid_encrypted_message 发送 加密信封不完整或格式错误。
429 limit_exceeded 发送 达到了发送链接的频率限制。
429 rate_limited 全部 来自你的网络地址的请求过多。
500 create_failed 发送 提醒未能保存。用同一个 idempotency_key 重试。
503 server_busy 全部 服务器同时处理的请求过多。稍后重试。