REST API v1 · למפתחים

שגיאות וקודי שגיאה

שגיאות תמיד חוזרות כ-JSON עם קוד error יציב שמיועד למכונה והודעת message שמיועדת לאנשים. קבלו החלטות לפי error וסטטוס ה-HTTP — ההודעות מיועדות לבני אדם ועשויות להשתנות.

תיעוד למפתחים
בעמוד הזה

פורמט השגיאה

לכל תשובת שגיאה יש אותו מבנה: { "error": CODE, "message": "…" }. חלק מהקודים מוסיפים שדות שעוזרים להגיב — למשל issues (מה לא תקין), required (ההרשאה החסרה), balance, feature או retryAfter.

תשובה · 400
HTTP/1.1 400 Bad Request

{
  "error": "INVALID_REQUEST",
  "message": "Invalid body",
  "issues": [{ "path": "body.amount", "message": "Number must be greater than or equal to 1" }]
}
תשובה · 409
HTTP/1.1 409 Conflict

{ "error": "INSUFFICIENT_FUNDS", "message": "The member does not have enough to remove this amount", "balance": 40 }

ב-issues, כל path מתחיל בחלק של הבקשה שהוא מתייחס אליו: params., query., body. או header..

כל קודי השגיאה

לכל נקודת קצה במדריך העיון מפורטים הקודים שהיא יכולה להחזיר. הרשימה המלאה:

קודי שגיאה
HTTPקודתיאור
400INVALID_REQUESTמזהים, פרמטרים, כותרות או גוף לא תקינים; issues מפרט מה שגוי
400INVALID_JSONהגוף אינו JSON תקין
401UNAUTHORIZEDהכותרת Authorization חסרה או בפורמט שגוי
401INVALID_API_KEYהמפתח לא קיים
401API_KEY_REVOKEDהמפתח בוטל בקונסולה
401API_KEY_EXPIREDתוקף המפתח פג
402PLAN_LIMITהתוכנית של השרת לא מכסה את זה: הגעתם למגבלה (limit) או שחסרה יכולת (flag)
403BROWSER_REQUESTS_NOT_ALLOWEDהבקשה נשלחה מדפדפן (יש לה כותרת Origin)
403GUILD_MISMATCHהמפתח שייך לשרת אחר
403INSUFFICIENT_SCOPEלמפתח חסרה הרשאה; required מציין אותה
403GUILD_BLOCKEDהשרת חסום ב-BotGG
403SELF_DECISIONיוצר מפתח ה-API לא יכול להחליט על המועמדות או הערעור של עצמו
403MODERATOR_NOT_MEMBERיוצר מפתח ה-API כבר לא חבר בשרת (פעולות הניהול נעשות בשמו)
403MODERATOR_MISSING_PERMISSIONליוצר מפתח ה-API חסרה הרשאת דיסקורד לפעולה הזו; required מציין אותה
403HIERARCHYאי אפשר להפעיל ניהול על היעד; reason מסביר למה (יוצר המפתח, בוט, הבעלים, או תפקיד שאינו נמוך מזה של היוצר או של הבוט)
404NOT_FOUNDנקודת קצה לא מוכרת
404TICKET_NOT_FOUNDאין בשרת כרטיס עם המספר הזה
404TRANSCRIPT_NOT_FOUNDלכרטיס אין תמליל שמור (הוא עדיין פתוח, התמלילים כבויים או שנמחק)
404APPLICATION_NOT_FOUNDאין בשרת מועמדות (או טופס) עם המספר או המזהה הזה
404APPEAL_NOT_FOUNDאין בשרת ערעור עם המספר הזה
404CASE_NOT_FOUNDאין בשרת תיק ניהול עם המספר הזה
404MODERATION_ACTION_NOT_FOUNDלא בוצעה עם מפתח ה-API הזה פעולת ניהול עם המזהה הזה
404BOT_NOT_IN_GUILDBotGG לא נמצא בשרת הזה
404MEMBER_NOT_FOUNDהמשתמש/ת לא חבר/ה בשרת
404XP_CHANGE_NOT_FOUNDלא בוצע עם מפתח ה-API הזה שינוי XP עם המזהה הזה
404SHOP_STORE_NOT_FOUNDאין בשרת חנות עם המזהה הזה
404SHOP_ITEM_NOT_FOUNDאין בשרת פריט חנות עם המזהה הזה
404SHOP_PURCHASE_NOT_FOUNDאין בשרת רכישה עם המזהה הזה
404GIVEAWAY_NOT_FOUNDאין בשרת הגרלה עם המזהה הזה
404FLOW_NOT_FOUNDאין בשרת תהליך עם המזהה הזה
404FLOW_EXECUTION_NOT_FOUNDאין בשרת הרצת תהליך עם המזהה הזה
409FEATURE_DISABLEDהפיצ׳ר שנקודת הקצה משתמשת בו כבוי בשרת; feature מציין אותו
409BANK_DISABLEDהבנק כבוי בשרת הזה
409INSUFFICIENT_FUNDSאין מספיק יתרה להורדה; balance היא היתרה הנוכחית
409SHOP_ITEM_UNAVAILABLEאי אפשר לקנות או להעניק את הפריט כרגע; reason מסביר למה (כבוי, החנות סגורה, אזל מהמלאי, מגבלה, המחיר השתנה, תפקידים, רמה, התפקיד כבר קיים)
409SHOP_ALREADY_REFUNDEDהרכישה כבר הוחזרה
409SHOP_ITEM_USEDהפריט כבר נוצל; החזירו אותו עם force: true
409ROLE_NOT_GRANTABLEהבוט לא יכול להעניק את התפקיד של הפריט (חסר, מעל הבוט, חזק מדי או שדיסקורד סירב); לא בוצע חיוב
409GIVEAWAY_BAD_STATEהסטטוס של ההגרלה לא מאפשר את זה; status הוא הנוכחי
409FLOW_NOT_RUNNABLEאפשר להריץ רק תהליכים שמתחילים בטריגר ידני או בטריגר Webhook; triggerType הוא הטריגר של התהליך
409FLOW_DISABLEDהתהליך כבוי
409TICKET_CLOSEDהכרטיס כבר סגור
409ALREADY_DECIDEDכבר התקבלה החלטה על המועמדות או הערעור; status היא ההחלטה
409NOT_BANNEDהמשתמש/ת לא חסום/ה בשרת
409BOT_MISSING_PERMISSIONSלבוט חסרה הרשאת דיסקורד לפעולה הזו; missing מפרט אותה
413PAYLOAD_TOO_LARGEגוף הבקשה גדול מדי
415UNSUPPORTED_MEDIA_TYPEהגוף לא נשלח כ-application/json
422IDEMPOTENCY_KEY_REUSEDמפתח האידמפוטנטיות כבר שימש לבקשה אחרת
422BOT_ACCOUNTלבוטים לא יכולה להיות יתרה
422BALANCE_LIMITהשינוי יחרוג ממגבלות היתרה של השרת
429RATE_LIMITEDיותר מדי בקשות; המתינו Retry-After שניות (גם בשדה retryAfter)
500INTERNALמשהו השתבש אצלנו
503SERVICE_UNAVAILABLEלא הצלחנו להגיע לדיסקורד, או ש-BotGG השהה את הפיצ׳ר זמנית; נסו שוב מאוחר יותר

על אילו שגיאות לנסות שוב

  • 429 RATE_LIMITED ו-503 SERVICE_UNAVAILABLE: המתינו את מספר השניות שב-Retry-After (גם ב-retryAfter) ונסו שוב.
  • 500 INTERNAL ושגיאות רשת: נסו שוב עם המתנה הולכת וגדלה. בכתיבה, שלחו Idempotency-Key כדי שניסיון חוזר לעולם לא יחיל שינוי פעמיים.
  • שגיאות 4xx אחרות לא ייעלמו בניסיון חוזר של אותה בקשה: תקנו קודם את הבקשה, את המפתח או את הגדרות השרת.

מוכנים לשדרג את השרת?

מוסיפים את BotGG בחינם ומפעילים יכולות בקונסולת הווב.