跳至主要內容

回應信封與錯誤碼:ok、result、description 與重試策略

MPChat Bot API 所有方法共享同一回應信封。學會讀 ok/result/description、各錯誤碼含義,以及哪些錯誤該重試。

永遠先判斷 ok之後再讀 result(成功)或 description + error_code(失敗)。


總覽

所有方法回傳同一信封,你只需寫一個解析器並到處複用。

// 成功
{ "ok": true, "result": { ... } }// 失敗
{ "ok": false, "description": "可讀的錯誤訊息", "error_code": 401 }

錯誤碼

含義

常見原因與處理

400

請求無效

缺欄位或訊息不存在——修正參數。

401

未授權

token 無效或已 revoke——檢查 token。

403

禁止

權限不足或訊息歸屬不符。

409

衝突

Webhook 啟用時呼叫了 getUpdates。

429

限流

超過 30 req/s——退避後重試。

500

伺服端錯誤

平台臨時故障——可重試。

50001

MP 業務錯誤

被業務層拒絕——查閱 description

501

未實作

目前不支援該方法(見方法矩陣)。

處理 409

呼叫 getWebhookInfo 確認 Webhook 配置。請勿自行執行 deleteWebhook——它是高危受控操作。請聯絡維護者處理衝突。

錯誤處理範例

const data = await res.json();
if (!data.ok) {
  console.error({ error_code: data.error_code, description: data.description });
  throw new Error(`Bot API ${data.error_code}: ${data.description}`);
}
return data.result;

重試策略

  • 429、500:帶上限的指數退避重試。

  • 400、401、403:不重試——修正輸入或權限。

  • 409:先理清輪詢與 Webhook 的互斥。

相關文章

錯誤上報中絕不記錄完整 token 或敏感欄位。脫敏規則見生產檢查清單。

是否回答了您的問題?