REST API v1 · למפתחים

אימות: מפתחות API והרשאות

כל בקשה ל-API של BotGG נושאת מפתח API של השרת בכותרת Authorization. למפתחות יש הרשאות, הם יכולים לפוג, אפשר לבטל אותם בכל רגע, והם עובדים רק משרתים — לעולם לא מדפדפנים.

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

מפתחות API

מפתח הוא botgg_ ואחריו 43 תווים אקראיים (256 ביט). BotGG שומר רק גיבוב SHA-256 שלו וקידומת קצרה כמו botgg_AbCd1234 כדי שתזהו אותו בקונסולה — אף אחד, כולל אותנו, לא יכול להציג לכם שוב את המפתח המלא.

  1. פתחו את הקונסולה, בחרו שרת ועברו ל-API בתפריט הצד. נדרשת הרשאת Manage Server.
  2. צרו מפתח: שם (למשל „אתר”), ההרשאות שהוא צריך ותוקף אופציונלי של 30, 90 או 365 ימים.
  3. העתיקו את המפתח מיד — הוא מוצג פעם אחת בלבד — ושמרו אותו כסוד בשרת שלכם, למשל ב-BOTGG_API_KEY.
  • מפתח שייך לשרת אחד. שימוש בו עבור שרת אחר מחזיר 403 GUILD_MISMATCH.
  • מפתחות פעילים לשרת: 2 ב-Free, 10 ב-Pro.
  • מפתח שפג תוקפו מחזיר 401 API_KEY_EXPIRED; מפתח שבוטל מחזיר מיד 401 API_KEY_REVOKED.
  • יצירה וביטול של מפתחות נרשמים ביומן הביקורת של הקונסולה. מפתח ממשיך לעבוד גם אם מי שיצר אותו עזב — הוא שייך לשרת, כמו טוקן של בוט.

שליחת המפתח

שלחו את המפתח בכותרת Authorization של כל בקשה בסכמת Bearer. אין עוגיות ואין סשנים — כל בקשה עומדת בפני עצמה.

curl
curl -s https://console.botgg.app/api/v1/guilds/123456789012345678 \
  -H "Authorization: Bearer $BOTGG_API_KEY"

כותרת חסרה או בפורמט שגוי מחזירה 401 UNAUTHORIZED, ומפתח לא מוכר — 401 INVALID_API_KEY. כשלונות חוזרים מאותה כתובת IP מוגבלים עם 429 RATE_LIMITED.

תשובה · 401
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer realm="BotGG API"

{ "error": "API_KEY_REVOKED", "message": "This API key was revoked" }

הרשאות (scopes)

מפתח יכול לקרוא רק לנקודות קצה שיש לו את ההרשאה שלהן. ההרשאות עצמאיות — bank:write לא כולל את bank:read — לכן תנו לכל מפתח בדיוק את מה שהקוד שלו צריך. לכל נקודת קצה במדריך העיון מצוינת ההרשאה שלה.

הרשאות של מפתחות API
הרשאהמה היא מאפשרת
guild:readקריאת פרטי השרת — שם השרת, סמל, מספר חברים, שפה ותכונות מופעלות; תפקידים, ערוצים ופרטי חבר בסיסיים (תפקידים, כינוי, תאריך הצטרפות).
bank:readקריאת הבנק — יתרות, היסטוריית התנועות של חבר והטבלה המובילה.
bank:writeשינוי יתרות — הוספה והורדה של מטבע לחברים. כל שינוי נרשם ביומן הבנק.
levels:readקריאת הרמות — הרמה, ה-XP והדירוג של חבר, וטבלת המובילים לפי XP.
levels:writeשינוי XP — הוספה, הורדה וקביעה של XP לחברים. תפקידי פרס והכרזות עליית רמה פועלים כמו בפקודות /levels; כל שינוי נרשם ביומן הפעולות.
invites:readקריאת הזמנות — מוני ההזמנות והדירוג של חבר, וטבלת המובילים בהזמנות.
invites:writeשינוי הזמנות בונוס — הוספה והורדה של הזמנות בונוס, כמו /invites add. פרסי אבני דרך מוענקים בהתאם; כל שינוי נרשם ביומן הפעולות.
shop:readקריאת החנות — חנויות, פריטים, המלאי של חברים והיסטוריית הרכישות.
shop:write רגישהניהול החנות — קנייה של פריטים עבור חברים (מחויב מיתרת הבנק שלהם, תפקידים מוענקים), הענקת פריטים בחינם, החזר רכישות, חידוש מלאי והפעלה או כיבוי של פריטים.
giveaways:readקריאת הגרלות — הגרלות פעילות ושהסתיימו, עם מספר המשתתפים, הזוכים ורשימת המשתתפים.
giveaways:writeניהול הגרלות — פתיחת הגרלות, סיום מוקדם שלהן והגרלת זוכים מחדש. הבוט מפרסם ומעדכן אותן ב-Discord.
flows:readקריאת תהליכים — רשימת התהליכים (שם, פעיל/כבוי, טריגר) והסטטוס והתוצאה של הרצות.
flows:run רגישההרצת תהליכים — הרצת תהליכים פעילים שמתחילים בטריגר ידני או Webhook, עם קלט משלך. התהליך מבצע את כל השלבים שלו; ההרצות נספרות במגבלה היומית של התוכנית.
tickets:readקריאת כרטיסים — רשימת הכרטיסים ופרטיהם (פותח, פאנל, סטטוס, תשובות הטופס) ותמלילים שמורים של כרטיסים סגורים.
tickets:writeסגירת כרטיסים — סגירת כרטיסים פתוחים עם סיבה — הבוט שומר תמליל, רושם ביומן ומודיע לפותח כמו בסגירה על ידי הצוות.
applications:readקריאת מועמדויות — טפסי מועמדות והגשות, כולל תשובות המועמדים, הצבעות והחלטות.
applications:writeהחלטה על מועמדויות — אישור או דחייה של מועמדויות פתוחות. הבוט נותן / מסיר את תפקידי הטופס, שולח הודעה למועמד ומעדכן את הדיון כמו בהחלטת צוות.
appeals:readקריאת ערעורים — ערעורי הרחקה עם התשובות, סיבת ההרחקה והשיחה (הערות פנימיות של הצוות לעולם לא נכללות).
appeals:write רגישההחלטה על ערעורים — אישור (ביטול הרחקה) או דחייה של ערעורים פתוחים עם סיבה; הבוט מבטל את ההרחקה ושולח הודעה כמו בהחלטת צוות.
אישור ערעור מבטל את ההרחקה של החבר.
moderation:read רגישהקריאת תיקי ניהול — תיקי ניהול (אזהרות, השתקות, הרחקות, חסימות…) עם סיבות, קישורי ראיות ומנהלים, וסטטוס פעולות API.
חושף את היסטוריית הניהול של החברים.
moderation:write רגישהניהול חברים — אזהרה, השתקה, הרחקה, חסימה וביטול חסימה בשם יוצר המפתח: רק כל עוד יש לו את הרשאת Discord המתאימה, רק לחברים מתחת לתפקיד הגבוה שלו ושל הבוט, עם סיבה, עד 10 פעולות בדקה.
כל מי שמחזיק במפתח הזה יכול להעניש חברים בשמך. שמרו אותו בסוד ובטלו אותו כשאינו בשימוש.
תשובה · 403
HTTP/1.1 403 Forbidden

{ "error": "INSUFFICIENT_SCOPE", "message": "This API key lacks the \"bank:write\" scope", "required": "bank:write" }

בלי בקשות מדפדפן

כדי להציג נתוני API בדף אינטרנט, קראו ל-API מהבקאנד שלכם והעבירו את התוצאה לדף.

אבטחה: שיטות עבודה מומלצות

  • מינימום הרשאות. אם אתם רק מציגים יתרות או טבלת מובילים, צרו מפתח עם הרשאות קריאה בלבד.
  • שמרו מפתחות כסודות — במשתנה סביבה או במנהל סודות, לא בקוד ולא במאגר.
  • תוקף והחלפה. הגדירו תוקף למפתחות; כדי להחליף מפתח, צרו חדש, פרסו אותו ורק אז בטלו את הישן.
  • דלף? בטלו מיד. מפתחות מתחילים ב-botgg_, כך שסורקי סודות וחיפוש פשוט מוצאים אותם בקלות.
  • HTTPS בלבד. ה-API לא זמין ב-HTTP רגיל.

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

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