Botokat, fedvényeket, adatfolyam-eszközöket és integrációkat készíthet a D1Arena adataival.
Hitelesítés
Minden API-kéréshez a X-API-Key / Authorization: Bearer fejlécben átadott API-kulcs szükséges.
API-kulcs létrehozásához lépjen a(z) Fejlesztői beállítások címre az irányítópulton. Legfeljebb 5 kulcsod lehet.
429 Too Many Requests, Retry-After fejléccel.
Alap URL
Minden végpont JSON-t ad vissza. A lapozott végpontok tartalmaznak egy meta objektumot a következőkkel: current_page, last_page és total.
Streamek
| Paraméter | Írja be | Leírás |
|---|---|---|
category_id | integer | Szűrés játék/kategóriaazonosító szerint |
limit | integer | Eredmények oldalanként (alapértelmezett: 20) |
page | integer | Oldalszám |
Kategóriák
| Paraméter | Írja be | Leírás |
|---|---|---|
search | string | Kategóriák szűrése név szerint |
limit | integer | Eredmények oldalanként (alapértelmezett: 50) |
Felhasználók
Klipek
| Paraméter | Írja be | Leírás |
|---|---|---|
streamer_id | integer | Szűrje le a klipeket a streamer felhasználói azonosítója alapján |
category_id | integer | Szűrés játék/kategóriaazonosító szerint |
limit | integer | Eredmények oldalanként (alapértelmezett: 20) |
Versenyek
| Paraméter | Írja be | Leírás |
|---|---|---|
status | string | Szűrés állapot szerint (pl. open, in_progress, completed) |
league_id | integer | Szűrés ligaazonosító alapján |
limit | integer | Eredmények oldalanként (alapértelmezett: 20) |
ELO Rangsorok
| Paraméter | Írja be | Leírás |
|---|---|---|
category_id | integer | Szűrés játék/kategóriaazonosító szerint |
limit | integer | Eredmények száma (alapértelmezett: 50) |
Ligák
| Paraméter | Írja be | Leírás |
|---|---|---|
status | string | Szűrés bajnoki állapot szerint |
category_id | integer | Szűrés játék/kategóriaazonosító szerint |
limit | integer | Eredmények oldalanként (alapértelmezett: 20) |
Hibaválaszok
Minden hiba következetes JSON-borítékot ad vissza. A error objektum mindig tartalmaz egy géppel olvasható code és egy ember által olvasható message elemet.
Állapotkódok
Hibakódok hivatkozása
| kód | HTTP állapot | Leírás |
|---|---|---|
invalid_api_key | 401 | Az API-kulcs hiányzik, rosszul formázott vagy nem létezik |
api_key_disabled | 403 | Az API-kulcsot visszavonták vagy letiltották |
not_found | 404 | A kért erőforrás nem található |
validation_error | 422 | Egy vagy több kérésparaméter érvénytelen |
rate_limited | 429 | Túllépte az API-kulcs kérési gyakorisági korlátját |
server_error | 500 | Belső szerverhiba – próbálkozzon újra, vagy lépjen kapcsolatba a támogatással |
Rate Limits
Az API-kérelmek sebessége API-kulcsonként korlátozott. Ha túllépi a korlátot, a kérések a következőt adják vissza: 429 Too Many Requests, Retry-After fejléccel.
Korlátozások szint szerint
| Szint | Kérések / jegyzőkönyv (Alapértelmezett) | Max Keys |
|---|---|---|
| Indító (ingyenes) | 60 | 5 |
| PRO | 60 | 5 |
| Végső | 60 | 5 |
| Partner | 60 | 5 |
Rate Limit fejlécek
Az API-kérelmek sebessége API-kulcsonként korlátozott. Ha túllépi a korlátot, a kérések a következőt adják vissza: 429 Too Many Requests, Retry-After fejléccel.
| Fejléc | Leírás |
|---|---|
Retry-After | Másodpercek az újrapróbálkozás előtt (csak 429 válasz esetén) |
Legjobb gyakorlatok
- Cache responses locally — stream and tournament data doesn't change every second.
- Iratkozzon fel a(z) webhooks szolgáltatásra a valós idejű eseményekért a lekérdezési végpontok helyett.
- Kötegelt kérések, ahol lehetséges – használjon szűrőparamétereket, hogy kevesebb hívással pontosan azt kapja meg, amire szüksége van.
Webhooks (EventSub)
Feliratkozás a valós idejű push értesítésekre szavazás helyett. Amikor egy esemény bekövetkezik, a D1Arena HTTP POST-ot küld a visszahívási URL-címére egy HMAC-SHA256-tal aláírt JSON-adattartalommal.
Beállítás
Webhook-előfizetések létrehozása itt: Fejlesztői beállítások. Minden előfizetéshez szükséges:
- Visszahívási URL — Nyilvánosan elérhető HTTPS-végpont a kiszolgálón.
- Események — Egy vagy több eseménytípusra elő kell iratkozni.
You'll receive a whsec_ signing secret upon creation. Store it securely — it's shown only once.
Payload formátum
Minden webhook kézbesítés egy JSON törzset küld a következő szerkezettel:
Fejlécek
Minden szállítás a következő fejléceket tartalmazza az útválasztáshoz és ellenőrzéshez:
| Fejléc | Leírás |
|---|---|
Content-Type | application/json |
X-D1Arena-Event | Esemény típusa (pl. stream.online) |
X-D1Arena-Signature | HMAC-SHA256 hexa kivonat a nyers kérés törzséből |
X-D1Arena-Signature-Version | Aláíró kulcs formátuma: v2 a jelenlegi előfizetésekhez vagy v1-hashed-secret a régi előfizetésekhez |
X-D1Arena-Delivery-Id | Egyedi kézbesítési UUID – használat deduplikációhoz |
X-D1Arena-Timestamp | Unix időbélyeg az esemény elküldésének időpontjáról |
Aláírások ellenőrzése
A webhook feldolgozása előtt mindig ellenőrizze a X-D1Arena-Signature fejlécet. Az aláírás a következőképpen kerül kiszámításra: HMAC-SHA256(raw_body, webhook_secret).
v2 szállításokhoz használja az előfizetés létrehozásakor megjelenő whsec_ titkot. A frissítés előtti v1-hashed-secret kézbesítéshez először számítsa ki a SHA256(whsec_secret) értéket az eredeti titkosításból, és használja a kapott kisbetűs hexadecimális kivonatot HMAC kulcsként. Ha lehetséges, hozza létre újra az előfizetést, hogy áttérjen a v2 oldalra.
Rendelkezésre álló események
| Esemény | Leírás |
|---|---|
| stream.online | Egy streamer élőben indult |
| stream.offline | Egy streamer offline állapotba került |
| channel.follow | Egy felhasználó követett egy csatornát |
| channel.subscribe | Új támogatói előfizetés egy csatornán |
| channel.tip | Egy tippet küldtek egy streamernek |
| tournament.started | Megkezdődött a torna mérkőzése |
| tournament.ended | Egy torna lezárult |
| tournament.match.completed | A mérkőzés eredményét rögzítették |
| clip.created | Új klip készült élő közvetítésből |
| overdrive.started | A D1 Frenzy egy csatornán indult |
| overdrive.level_up | A D1 Frenzy a következő szintre lépett |
| overdrive.ended | D1 Frenzy befejeződött vagy lejárt |
Esemény hasznos terhelés példák
stream.online
stream.offline
channel.follow
channel.tip
tournament.match.completed
clip.created
Szállítási és újrapróbálkozási szabályzat
| Kísérlet | Késleltetés | Megjegyzések |
|---|---|---|
| 1. (kezdeti) | Azonnali | Az eseményt követő másodperceken belül elküldték |
| 2. (újrapróbálkozás) | 30 másodperc | Ha az első próbálkozás sikertelen vagy időtúllépés esetén |
| 3. (újrapróbálkozás) | 2 perc | Exponenciális visszalépés |
| 4. (döntő) | 10 perc | Utolsó próbálkozás a sikertelenként való megjelölés előtt |
2xx status within 10 másodperc. Non-2xx responses or timeouts trigger a retry. After 10 egymást követő hiba, the subscription is automatically disabled. You'll receive an email notification and can re-enable it in Fejlesztői beállítások.
Legjobb gyakorlatok
- Mindig ellenőrizze az aláírásokat a hasznos terhek feldolgozása előtt a hamis események megelőzése érdekében.
- Használja a Delivery-Id-t a duplikáció megszüntetéséhez — Az újrapróbálkozások ugyanazt az azonosítót küldik, ezért tárolja a feldolgozott azonosítókat a kettős feldolgozás elkerülése érdekében.
- Gyorsan válaszoljon, aszinkron módon dolgozzon — azonnal küldje vissza
200 OK-ot, és kezelje az üzleti logikát egy háttérmunkában. - Csak HTTPS-végpontokat használjon — A webhook URL-eknek TLS-t kell használniuk. A HTTP-visszahívások elutasítva.
- Kezelje az ismeretlen eseményeket kecsesen — új eseménytípusok adhatók hozzá. Adja vissza a(z)
200értéket a fel nem ismert eseményekért, nem pedig tévedésért.
D1 Őrület
A D1 Frenzy-t gyors tippek és előfizetések váltják ki, miközben egy streamer él. Növekvő célokkal 5 szinten halad át.
GET /api/overdrive/{streamerId}
Szerezd meg az aktív D1 Frenzy-t egy streamerhez. {"active": false} értéket ad vissza, ha nincs.
Szintcélok
| Szint | Pontok |
|---|---|
| 1 | 100 |
| 2 | 250 |
| 3 | 500 |
| 4 | 1,000 |
| 5 | 2,000 |
D1 Őrület — Pontok: Tipp $1 → 100; Előfizetés 500 × Szint. Időtartam: 5 Jegyzőkönyv; Lehűlés: 30 Jegyzőkönyv.
Kiterjesztés SDK
Hozzon létre egyéni panel- és fedvénybővítményeket, amelyeket a streamelők telepíthetnek csatornaoldalaikra. A bővítmények sandboxba helyezett iframe-ekben futnak, és a(z) postMessage segítségével kommunikálnak a gazdagéppel.
Kezdő lépések
- Hozzon létre egy API-kulcsot itt: Fejlesztői beállítások.
- Építse fel bővítményét a domainjén tárolt, önálló HTML-oldalként (HTTPS szükséges).
- Küldje be felülvizsgálatra a Saját bővítmények szakaszban.
- A jóváhagyást követően a streamerek telepíthetik azt az Extension Marketplace-ről.
Kiterjesztés típusai
| Írja be | Helyszín | Viselkedés |
|---|---|---|
panel | A stream lejátszó alatt | Akkor látható, ha a közvetítés élő. Teljes szélességű kártya, 300 képpont alapértelmezett magasság. |
overlay | A videólejátszó felett | Élőben látható. A streamer által vezérelt pozíció/méret az overlay pozicionáló eszközzel. |
postMessage API
A bővítmény automatikusan kap környezeti adatokat, amikor betöltődik. Végezze el ezeket az eseményeket:
Minden üzenethez használja a pontos D1Arena szülői eredetet. A hivatalos SDK automatikusan levezeti és ellenőrzi ezt az eredetet a beágyazási oldalról.
Mivel az iframe kiterjesztésű keretek szándékosan átlátszatlan sandbox eredetet használnak, a D1Arena gazdagép pontosan a regisztrált iframe ablakot hitelesíti. A kiterjesztés kódjának továbbra is hitelesítenie kell a szülőablakot és pontos D1Arena eredetet, mielőtt elfogadná a kontextust.
1. Jelkészültség
2. Kontextus fogadása
3. Műveletek küldése (nem kötelező)
Engedélyek hatálya
Adja meg, hogy milyen adatokra van szüksége a bővítménynek. Az ellenőrök ellenőrzik, hogy a kód megfelel-e a deklarált engedélyeknek.
| Hatály | Hozzáférést biztosít |
|---|---|
read:stream | Az adatfolyam állapota, címe, kategóriája |
read:viewers | Nézőszám és lista |
read:chat | Chat üzenetek (pusher csatornán keresztül) |
read:clips | Csatornaklipek a következőn keresztül: /api/clips/{slug} |
read:tournaments | Aktív meccsinformációk a következőn keresztül: /api/active-match/{id} |
read:channel | Csatorna profil, követők, ütemezés |
Biztonsági követelmények
sandbox="allow-scripts". Az Ön nem lehet bővítménye hozzáfér a cookie-khoz, a localStorage-hoz, vagy hitelesített kéréseket küldhet a d1arena.com webhelynek.
- Nyilvános HTTPS szükséges — Az iframe URL-jének a TLS címet kell használnia, és csak nyilvános hálózati címekre kell feloldania.
- Ember által olvasható forrás — Nincs obfuszkált vagy csak minimálisra csökkentett JavaScript. A véleményezőknek el kell tudniuk olvasni a kódot.
- Nincs külső szkript betöltése hacsak beadványában nem nyilatkozik. A CDN-könyvtárak (jQuery, Chart.js stb.) megfelelőek.
- Nincs adatkiszűrés — A bővítmények nem küldhetnek megtekintői adatokat harmadik féltől származó analitikai vagy nyomkövetési szolgáltatásoknak.
- Tartalmi irányelvek — Nincsenek hirdetések, NSFW-tartalom, kriptovaluta bányászat vagy rosszindulatú viselkedés.
Felülvizsgálati folyamat
| Állapot | Jelentése |
|---|---|
| pending | Beküldve, adminisztrátori felülvizsgálatra vár (általában 1-3 munkanap). |
| approved | Jóváhagyva és látható a bővítmények piacterén. |
| rejected | Indokkal elutasítva. Javítsa ki a problémákat, és küldje be újra. |
| suspended | Ideiglenesen eltávolítottuk az irányelvek megsértése miatt. Lépjen kapcsolatba az ügyfélszolgálattal. |
Version Updates
Egy jóváhagyott bővítmény frissítéséhez törölje az aktuális verziót, és küldjön be egy újat növekményes verziószámmal. Az új verzió ismét felülvizsgálaton esik át.
Változásnapló
Kövesse nyomon az API változásait és az új funkciókat. Követjük a szemantikus verziószámítást, és legalább 30 nappal korábban bejelentjük a törési változásokat.
- Első nyilvános API-kiadás API-kulcs hitelesítéssel.
- Streamek: Élő közvetítések listázása, a streamelők adatainak lekérése.
- Kategóriák: Az összes játékkategória keresése és listázása.
- Felhasználók: Nyilvános profilok versenystatisztikával, ELO-besorolással és érmek számával.
- Klipek: Böngésszen és kérjen le a klip részleteiről a streamer/alkotói adatok segítségével.
- Versenyek: listázás, státusz/bajnokság szerinti szűrés, résztvevők számának lekérése.
- ELO ranglista: Globális és kategóriánként rangsorolt ranglisták.
- Liga: Liga listája a tabellákkal és pontbontással.
- D1 Frenzy: Valós idejű Frenzy állapot bármely streamerhez.
- Webhooks (EventSub): 12 eseménytípus, köztük stream, csatorna, verseny, klip és Frenzy események.
- Rate Limits
Segítségre van szüksége?
Kérdése van a(z) API-ről? Vegye fel velünk a kapcsolatot.