בנו בוטים, שכבות-על, כלי סטרימינג ואינטגרציות עם נתוני D1Arena.
אימות
כל בקשות ה-API דורשות מפתח API המועבר בכותרת X-API-Key / Authorization: Bearer.
כדי ליצור מפתח API, עבור אל הגדרות מפתח במרכז השליטה שלך. אתה יכול לקבל עד 5 מפתחות.
429 Too Many Requests עם כותרת Retry-After.
כתובת האתר הבסיסית
כל נקודות הקצה מחזירות JSON. נקודות קצה מדורגות כוללות אובייקט meta עם current_page, last_page ו-total.
זרמים
| פרמטר | הקלד | תיאור |
|---|---|---|
category_id | integer | סנן לפי מזהה משחק/קטגוריה |
limit | integer | תוצאות לכל עמוד (ברירת מחדל: 20) |
page | integer | מספר עמוד |
קטגוריות
| פרמטר | הקלד | תיאור |
|---|---|---|
search | string | סנן קטגוריות לפי שם |
limit | integer | תוצאות לכל עמוד (ברירת מחדל: 50) |
משתמשים
קליפים
| פרמטר | הקלד | תיאור |
|---|---|---|
streamer_id | integer | סנן קליפים לפי מזהה המשתמש של הסטרימר |
category_id | integer | סנן לפי מזהה משחק/קטגוריה |
limit | integer | תוצאות לכל עמוד (ברירת מחדל: 20) |
טורנירים
| פרמטר | הקלד | תיאור |
|---|---|---|
status | string | סנן לפי סטטוס (למשל open, in_progress, completed) |
league_id | integer | סנן לפי מזהה ליגה |
limit | integer | תוצאות לכל עמוד (ברירת מחדל: 20) |
דירוג ELO
| פרמטר | הקלד | תיאור |
|---|---|---|
category_id | integer | סנן לפי מזהה משחק/קטגוריה |
limit | integer | מספר תוצאות (ברירת מחדל: 50) |
ליגות
| פרמטר | הקלד | תיאור |
|---|---|---|
status | string | סנן לפי סטטוס ליגה |
category_id | integer | סנן לפי מזהה משחק/קטגוריה |
limit | integer | תוצאות לכל עמוד (ברירת מחדל: 20) |
תגובות שגיאה
כל השגיאות מחזירות מעטפת JSON עקבית. האובייקט error מכיל תמיד code קריא במכונה ו-message קריא לאדם.
קודי סטטוס
הפניה לקודי שגיאה
| קוד | מצב HTTP | תיאור |
|---|---|---|
invalid_api_key | 401 | מפתח ה-API חסר, פגום או אינו קיים |
api_key_disabled | 403 | מפתח ה-API בוטל או הושבת |
not_found | 404 | המשאב המבוקש לא נמצא |
validation_error | 422 | פרמטר בקשה אחד או יותר אינם חוקיים |
rate_limited | 429 | חרגת ממגבלת קצב הבקשה עבור מפתח API זה |
server_error | 500 | שגיאת שרת פנימית - אנא נסה שוב או פנה לתמיכה |
מגבלות תעריף
בקשות API מוגבלות בקצב לכל מפתח API. כאשר אתה חורג מהמגבלה, הבקשות מחזירות 429 Too Many Requests עם כותרת Retry-After.
מגבלות לפי שכבה
| שכבה | בקשות / דקה (ברירת מחדל) | מקס קיז |
|---|---|---|
| מתנע (חינם) | 60 | 5 |
| PRO | 60 | 5 |
| אולטימטיבי | 60 | 5 |
| שותף | 60 | 5 |
כותרות מגבלת שיעור
בקשות API מוגבלות בקצב לכל מפתח API. כאשר אתה חורג מהמגבלה, הבקשות מחזירות 429 Too Many Requests עם כותרת Retry-After.
| כותרת | תיאור |
|---|---|
Retry-After | שניות לחכות לפני ניסיון חוזר (קיים רק ב-429 תגובות) |
שיטות עבודה מומלצות
- Cache responses locally — stream and tournament data doesn't change every second.
- הירשם ל-webhooks לאירועים בזמן אמת במקום נקודות קצה של הסקרים.
- בקשות אצווה במידת האפשר - השתמש בפרמטרי סינון כדי לקבל בדיוק את מה שאתה צריך בפחות שיחות.
Webhooks (EventSub)
הירשם לקבלת התראות דחיפה בזמן אמת במקום סקרים. כאשר מתרחש אירוע, D1Arena שולחת HTTP POST לכתובת ה-callback שלך עם מטען JSON חתום ב-HMAC-SHA256.
הגדרה
צור מנויי webhook ב-הגדרות מפתח. כל מנוי דורש:
- כתובת אתר להתקשרות חוזרת — נקודת קצה HTTPS נגישה לציבור בשרת שלך.
- אירועים — סוג אירוע אחד או יותר להירשם אליו.
You'll receive a whsec_ signing secret upon creation. Store it securely — it's shown only once.
פורמט מטען
כל שליחת חיבור לאינטרנט שולחת גוף JSON עם המבנה הזה:
כותרות
כל משלוח כולל את הכותרות הבאות לניתוב ואימות:
| כותרת | תיאור |
|---|---|
Content-Type | application/json |
X-D1Arena-Event | סוג אירוע (למשל stream.online) |
X-D1Arena-Signature | HMAC-SHA256 hex digest של גוף הבקשה הגולמי |
X-D1Arena-Signature-Version | פורמט מפתח חתימה: v2 עבור מנויים נוכחיים או v1-hashed-secret עבור מנויים מדור קודם |
X-D1Arena-Delivery-Id | UUID למשלוח ייחודי - השתמש למניעת כפילויות |
X-D1Arena-Timestamp | חותמת זמן Unix של מועד שליחת האירוע |
אימות חתימות
אמת תמיד את הכותרת X-D1Arena-Signature לפני עיבוד webhook. החתימה מחושבת כ-HMAC-SHA256(raw_body, webhook_secret).
עבור משלוחים של v2, השתמש בסוד whsec_ שהוצג כאשר המנוי נוצר. למסירה מוקדמת של v1-hashed-secret, חישבו תחילה את SHA256(whsec_secret) מאותו סוד מקורי והשתמשו בתקציר הקש המתקבל באותיות קטנות כמפתח HMAC. צור מחדש את המנוי כשאפשר לעבור ל-v2.
אירועים זמינים
| אירוע | תיאור |
|---|---|
| stream.online | סטרימר עלה לאוויר |
| stream.offline | סטרימר לא התחבר |
| channel.follow | משתמש עקב אחר ערוץ |
| channel.subscribe | מנוי תומך חדש בערוץ |
| channel.tip | טיפ נשלח לסטרימר |
| tournament.started | משחק משחקי טורניר החל |
| tournament.ended | טורניר הסתיים |
| tournament.match.completed | תוצאת משחק נרשמה |
| clip.created | קליפ חדש נוצר משידור חי |
| overdrive.started | D1 Frenzy התחיל בערוץ |
| overdrive.level_up | D1 Frenzy התקדם לשלב הבא |
| overdrive.ended | D1 Frenzy הושלם או פג תוקף |
דוגמאות לאירועים
stream.online
stream.offline
channel.follow
channel.tip
tournament.match.completed
clip.created
מדיניות מסירה וניסיון חוזר
| ניסיון | עיכוב | הערות |
|---|---|---|
| 1 (ראשוני) | מיידי | נשלח תוך שניות מהאירוע |
| 2 (נסה שוב) | 30 שניות | אם הניסיון הראשון נכשל או פסק זמן |
| שלישי (נסה שוב) | 2 דקות | גיבוי אקספוננציאלי |
| רביעי (סופי) | 10 דקות | ניסיון אחרון לפני הסימון ככשל |
2xx status within 10 שניות. Non-2xx responses or timeouts trigger a retry. After 10 כישלונות רצופים, the subscription is automatically disabled. You'll receive an email notification and can re-enable it in הגדרות מפתח.
שיטות עבודה מומלצות
- בדוק תמיד חתימות לפני עיבוד מטענים כדי למנוע אירועים מזויפים.
- השתמש ב-Delivery-Id למניעת כפילויות — ניסיונות חוזרים שולחים את אותו מזהה, אז אחסן מזהים מעובדים כדי למנוע עיבוד כפול.
- הגיבו מהר, עבדו בצורה אסינכרונית — להחזיר את
200 OKמיד ולטפל בהיגיון עסקי בעבודת רקע. - השתמש בנקודות קצה HTTPS בלבד — כתובות URL של webhook חייבות להשתמש ב-TLS. התקשרות חוזרת של HTTP נדחתה.
- טפל באירועים לא ידועים בחן — ניתן להוסיף סוגי אירועים חדשים. החזר
200לאירועים לא מזוהים במקום שגיאה.
D1 טירוף
D1 Frenzy מופעל על ידי טיפים ומינויים מהירים בזמן שסטרימר בשידור חי. זה מתקדם דרך 5 רמות עם יעדים הולכים וגדלים.
GET /api/overdrive/{streamerId}
קבל את ה-D1 Frenzy הפעיל עבור סטרימר. מחזירה {"active": false} אם אין.
יעדי רמה
| רמה | נקודות |
|---|---|
| 1 | 100 |
| 2 | 250 |
| 3 | 500 |
| 4 | 1,000 |
| 5 | 2,000 |
D1 טירוף — נקודות: טיפ $1 → 100; מנוי 500 × שכבה. משך זמן: 5 דקות; התקררות: 30 דקות.
SDK של הרחבה
בנו תוספי פאנל ושכבת-על מותאמים אישית שסטרימרים יכולים להתקין בדפי הערוץ שלהם. הרחבות פועלות ב-iframes עם ארגז חול ומתקשרות עם הדף המארח באמצעות postMessage.
תחילת העבודה
- צור מפתח API ב-הגדרות מפתח.
- בנה את התוסף שלך כדף HTML עצמאי המתארח בדומיין שלך (נדרש HTTPS).
- שלח אותו לבדיקה בקטע ההרחבות שלי.
- לאחר האישור, סטרימרים יכולים להתקין אותו מ-Extension Marketplace.
סוגי הרחבות
| הקלד | מיקום | התנהגות |
|---|---|---|
panel | מתחת לנגן הזרם | גלוי כאשר השידור חי. כרטיס ברוחב מלא, גובה ברירת מחדל של 300 פיקסלים. |
overlay | מעל נגן הווידאו | גלוי בזמן חי. מיקום/גודל נשלט על ידי הסטרימר באמצעות כלי מיקום שכבת העל. |
ממשק API של postMessage
התוסף שלך מקבל נתוני הקשר באופן אוטומטי כאשר הוא נטען. יישם את האירועים הבאים:
השתמש במקור האב המדויק D1Arena עבור כל הודעה. ה-SDK הרשמי גוזר ומאמת את המקור הזה מדף ההטמעה באופן אוטומטי.
מכיוון ש-iframes של הרחבה משתמשות בכוונה במקור ארגז חול אטום, המארח D1Arena מאמת את חלון ה-iframe הרשום המדויק. קוד ההרחבה חייב עדיין לאמת את חלון האב ואת המקור המדויק של D1Arena לפני קבלת ההקשר.
1. איתות מוכנות
2. קבלת הקשר
3. שלח פעולות (אופציונלי)
היקף ההרשאה
הצהר לאילו נתונים התוסף שלך צריך. בודקים מאמתים שהקוד שלך תואם את ההרשאות המוצהרות שלך.
| היקף | מעניק גישה אל |
|---|---|
read:stream | סטטוס זרם, כותרת, קטגוריה |
read:viewers | ספירת צופים ורשימה |
read:chat | הודעות צ'אט (דרך ערוץ Pusher) |
read:clips | קטעי ערוץ דרך /api/clips/{slug} |
read:tournaments | פרטי התאמה פעילה באמצעות /api/active-match/{id} |
read:channel | פרופיל ערוץ, עוקבים, לוח זמנים |
דרישות אבטחה
sandbox="allow-scripts". התוסף שלך לא יכול ניגש לקובצי Cookie, ל-localStorage או שלח בקשות מאומתות ל-d1arena.com.
- HTTPS ציבורי נדרש — כתובת ה-iframe שלך חייבת להשתמש ב-TLS ולהתייצב רק לכתובות רשת ציבוריות.
- מקור קריא לאדם — אין JavaScript מעורפל או ממוזער בלבד. סוקרים חייבים להיות מסוגלים לקרוא את הקוד שלך.
- אין טעינת סקריפט חיצונית אלא אם כן הוצהר בהגשתך. ספריות CDN (jQuery, Chart.js וכו') בסדר.
- אין חילוץ נתונים — אסור לתוספים לשלוח נתוני צופים לשירותי ניתוח או מעקב של צד שלישי.
- מדיניות תוכן — אין מודעות, תוכן NSFW, כריית מטבעות קריפטוגרפיים או התנהגות זדונית.
תהליך סקירה
| סטטוס | משמעות |
|---|---|
| pending | נשלח, ממתין לבדיקת מנהל (בדרך כלל 1-3 ימי עסקים). |
| approved | מאושר וגלוי ב-Extension Marketplace. |
| rejected | נדחה עם סיבה. תקן בעיות ושלח מחדש. |
| suspended | הוסר באופן זמני עקב הפרת מדיניות. צור קשר עם התמיכה. |
עדכוני גרסה
כדי לעדכן הרחבה מאושרת, מחק את הגרסה הנוכחית ושלח גרסה חדשה עם מספר גרסה מוגדל. הגרסה החדשה עוברת ביקורת שוב.
יומן שינויים
עקוב אחר שינויים ב-API ותכונות חדשות. אנו עוקבים אחר עיבוד גרסאות סמנטי ומודיעים על שינויים פורצים לפחות 30 יום מראש.
- שחרור API ציבורי ראשוני עם אימות מפתח API.
- זרמים: רשום זרמים חיים, קבל פרטי סטרימר לפי שבלול.
- קטגוריות: חפש ורשום את כל קטגוריות המשחקים.
- משתמשים: פרופילים ציבוריים עם נתונים סטטיסטיים תחרותיים, דירוג ELO וספירת מדליות.
- קליפים: עיין ואחזר פרטי קליפ עם מידע סטרימר/יוצר.
- טורנירים: רשימה, סנן לפי סטטוס/ליגה, קבל ספירת משתתפים.
- ELO Leaderboard: מדורגות גלובליות ומדורגות לפי קטגוריות.
- ליגות: רשום ליגות עם דירוגים וחלוקת נקודות.
- D1 Frenzy: מצב טירוף בזמן אמת עבור כל סטרימר.
- Webhooks (EventSub): 12 סוגי אירועים כולל סטרימינג, ערוץ, טורניר, קליפ ואירועי Frenzy.
- מגבלות תעריף
צריך עזרה?
שאלות לגבי ה-API? צור איתנו קשר.