Veidojiet robotprogrammatūras, pārklājumus, straumēšanas rīkus un integrācijas ar D1Arena datiem.
Autentifikācija
Visiem API pieprasījumiem ir nepieciešama API atslēga, kas nodota X-API-Key / Authorization: Bearer galvenē.
Lai izveidotu API atslēgu, savā informācijas panelī atveriet Izstrādātāja iestatījumi. Jums var būt līdz 5 atslēgām.
429 Too Many Requests ar galveni Retry-After.
Pamata URL
Visi galapunkti atgriež JSON. Lappuses galapunktos ir ietverts objekts meta ar current_page, last_page un total.
Straumes
| Parametrs | Tips | Apraksts |
|---|---|---|
category_id | integer | Filtrējiet pēc spēles/kategorijas ID |
limit | integer | Rezultāti vienā lapā (noklusējuma: 20) |
page | integer | Lapas numurs |
Kategorijas
| Parametrs | Tips | Apraksts |
|---|---|---|
search | string | Filtrējiet kategorijas pēc nosaukuma |
limit | integer | Rezultāti vienā lapā (noklusējums: 50) |
Lietotāji
Klipi
| Parametrs | Tips | Apraksts |
|---|---|---|
streamer_id | integer | Filtrējiet klipus pēc straumētāja lietotāja ID |
category_id | integer | Filtrējiet pēc spēles/kategorijas ID |
limit | integer | Rezultāti vienā lapā (noklusējuma: 20) |
Turnīri
| Parametrs | Tips | Apraksts |
|---|---|---|
status | string | Filtrēt pēc statusa (piem., open, in_progress, completed) |
league_id | integer | Filtrēt pēc līgas ID |
limit | integer | Rezultāti vienā lapā (noklusējuma: 20) |
ELO klasifikācija
| Parametrs | Tips | Apraksts |
|---|---|---|
category_id | integer | Filtrējiet pēc spēles/kategorijas ID |
limit | integer | Rezultātu skaits (noklusējums: 50) |
Līgas
| Parametrs | Tips | Apraksts |
|---|---|---|
status | string | Filtrēt pēc līgas statusa |
category_id | integer | Filtrējiet pēc spēles/kategorijas ID |
limit | integer | Rezultāti vienā lapā (noklusējuma: 20) |
Kļūdu atbildes
Visas kļūdas atgriež konsekventu JSON aploksni. Objektā error vienmēr ir mašīnlasāms code un cilvēkam lasāms message.
Statusa kodi
Kļūdu kodu atsauce
| Kods | HTTP statuss | Apraksts |
|---|---|---|
invalid_api_key | 401 | Trūkst API atslēgas, tā ir nepareizi veidota vai neeksistē |
api_key_disabled | 403 | API atslēga ir atsaukta vai atspējota |
not_found | 404 | Pieprasīto resursu nevarēja atrast |
validation_error | 422 | Viens vai vairāki pieprasījuma parametri nav derīgi |
rate_limited | 429 | Pārsniegts šīs API atslēgas pieprasījuma ātruma ierobežojums |
server_error | 500 | Iekšējā servera kļūda — lūdzu, mēģiniet vēlreiz vai sazinieties ar atbalsta dienestu |
Likmes ierobežojumi
API pieprasījumu ātrums ir ierobežots katrai API atslēgai. Ja pārsniedzat ierobežojumu, pieprasījumi atgriež 429 Too Many Requests ar galveni Retry-After.
Ierobežojumi pēc līmeņa
| Līmenis | Pieprasījumi / minūte (Noklusējums) | Makss Atslēgas |
|---|---|---|
| Starteris (bezmaksas) | 60 | 5 |
| PRO | 60 | 5 |
| Galīgais | 60 | 5 |
| Partneris | 60 | 5 |
Likmes ierobežojuma galvenes
API pieprasījumu ātrums ir ierobežots katrai API atslēgai. Ja pārsniedzat ierobežojumu, pieprasījumi atgriež 429 Too Many Requests ar galveni Retry-After.
| Virsraksts | Apraksts |
|---|---|
Retry-After | Sekundes, kas jāgaida pirms atkārtotas mēģinājuma (ir tikai 429 atbildēs) |
Labākā prakse
- Cache responses locally — stream and tournament data doesn't change every second.
- Abonējiet webhooks reāllaika notikumiem, nevis aptaujas galapunktiem.
- Ja iespējams, pakešu pieprasījumi — izmantojiet filtra parametrus, lai ar mazāku zvanu skaitu iegūtu tieši to, kas jums nepieciešams.
Webhooks (EventSub)
Aptauju vietā abonējiet reāllaika informatīvos paziņojumus. Kad notiek notikums, D1Arena nosūta HTTP POST uz jūsu atzvanīšanas URL ar JSON lietderīgo slodzi, kas parakstīta ar HMAC-SHA256.
Iestatīšana
Izveidojiet tīmekļa aizķeres abonementus pakalpojumā Izstrādātāja iestatījumi. Katram abonementam ir nepieciešams:
- Atzvanīšanas URL — Publiski pieejams HTTPS galapunkts jūsu serverī.
- Pasākumi — Jāabonē viens vai vairāki notikumu veidi.
You'll receive a whsec_ signing secret upon creation. Store it securely — it's shown only once.
Kravas slodzes formāts
Katra tīmekļa aizķeres piegāde nosūta JSON pamattekstu ar šādu struktūru:
Virsraksti
Katra piegāde ietver šādas virsrakstus maršrutēšanai un pārbaudei:
| Virsraksts | Apraksts |
|---|---|
Content-Type | application/json |
X-D1Arena-Event | Notikuma veids (piem., stream.online) |
X-D1Arena-Signature | HMAC-SHA256 hex īssavilkums neapstrādātā pieprasījuma pamattekstā |
X-D1Arena-Signature-Version | Parakstīšanas atslēgas formāts: v2 pašreizējiem abonementiem vai v1-hashed-secret mantotajiem abonementiem |
X-D1Arena-Delivery-Id | Unikāls piegādes UUID — izmantojiet dublēšanas atcelšanai |
X-D1Arena-Timestamp | Unix laika zīmogs, kad pasākums tika nosūtīts |
Parakstu pārbaude
Pirms tīmekļa aizķeres apstrādes vienmēr pārbaudiet X-D1Arena-Signature galveni. Paraksts tiek aprēķināts kā HMAC-SHA256(raw_body, webhook_secret).
v2 piegādēm izmantojiet whsec_ noslēpumu, kas tika parādīts, kad tika izveidots abonements. Lai veiktu piegādi pirms jaunināšanas v1-hashed-secret, vispirms aprēķiniet SHA256(whsec_secret) no šī sākotnējā noslēpuma un izmantojiet iegūto mazo burtu heksades īssavilkumu kā atslēgu HMAC. Ja iespējams, atkārtoti izveidojiet abonementu, lai pārietu uz v2.
Pieejamie notikumi
| Pasākums | Apraksts |
|---|---|
| stream.online | Straumētājs sāka tiešraidi |
| stream.offline | Straumētājs pārgāja bezsaistē |
| channel.follow | Lietotājs sekoja kanālam |
| channel.subscribe | Jauns atbalstītāja abonements kanālā |
| channel.tip | Straumētājam tika nosūtīts padoms |
| tournament.started | Ir sākusies turnīra spēle |
| tournament.ended | Turnīrs ir noslēdzies |
| tournament.match.completed | Tika fiksēts spēles rezultāts |
| clip.created | No tiešraides straumes tika izveidots jauns klips |
| overdrive.started | D1 Frenzy sākās kanālā |
| overdrive.level_up | D1 Frenzy pavirzījās uz nākamo līmeni |
| overdrive.ended | D1 Frenzy pabeigts vai beidzies derīguma termiņš |
Pasākumu lietderīgās slodzes piemēri
stream.online
stream.offline
channel.follow
channel.tip
tournament.match.completed
clip.created
Piegādes un atkārtota mēģinājuma politika
| Mēģinājums | Kavēšanās | Piezīmes |
|---|---|---|
| 1. (sākotnējais) | Tūlītēja | Nosūtīts dažu sekunžu laikā pēc notikuma |
| 2. (mēģināt vēlreiz) | 30 sekundes | Ja pirmais mēģinājums neizdodas vai iestājas noildze |
| 3. (atkārtot) | 2 minūtes | Eksponenciāla atkāpšanās |
| 4. (fināls) | 10 minūtes | Pēdējais mēģinājums pirms atzīmēšanas kā neveiksmīgs |
2xx status within 10 sekundes. Non-2xx responses or timeouts trigger a retry. After 10 secīgas neveiksmes, the subscription is automatically disabled. You'll receive an email notification and can re-enable it in Izstrādātāja iestatījumi.
Labākā prakse
- Vienmēr pārbaudiet parakstus pirms lietderīgās slodzes apstrādes, lai novērstu viltotus notikumus.
- Izmantojiet Delivery-ID, lai noņemtu dublēšanos — mēģinājumi nosūtīt to pašu ID, tāpēc saglabājiet apstrādātos ID, lai izvairītos no dubultas apstrādes.
- Ātri atbildiet, apstrādājiet asinhroni — nekavējoties atgrieziet
200 OKun izmantojiet biznesa loģiku fona darbā. - Izmantojiet tikai HTTPS galapunktus — tīmekļa aizķeres vietrāžiem URL ir jāizmanto TLS. HTTP atzvani tiek noraidīti.
- Graciozi rīkojieties ar nezināmiem notikumiem — var tikt pievienoti jauni notikumu veidi. Atgrieziet
200par neatpazītiem notikumiem, nevis kļūdu.
D1 trakums
D1 Frenzy aktivizē ātri padomi un abonementi, kamēr straumētājs ir tiešraidē. Tas virzās pa 5 līmeņiem ar pieaugošiem mērķiem.
GET /api/overdrive/{streamerId}
Iegūstiet aktīvo D1 Frenzy straumētājam. Ja nav, atgriež {"active": false}.
Līmeņa mērķi
| Līmenis | Punkti |
|---|---|
| 1 | 100 |
| 2 | 250 |
| 3 | 500 |
| 4 | 1,000 |
| 5 | 2,000 |
D1 trakums — Punkti: Padoms $1 → 100; Abonēšana 500 × Līmenis. Ilgums: 5 Minūtes; Atdzesēšana: 30 Minūtes.
Paplašinājuma SDK
Izveidojiet pielāgotus paneļu un pārklājuma paplašinājumus, ko straumētāji var instalēt savās kanālu lapās. Paplašinājumi darbojas smilškastes iframe un sazinās ar mitinātāja lapu, izmantojot postMessage.
Darba sākšana
- Izveidojiet API atslēgu programmā Izstrādātāja iestatījumi.
- Izveidojiet savu paplašinājumu kā atsevišķu HTML lapu, kas tiek mitināta jūsu domēnā (nepieciešams HTTPS).
- Iesniedziet to pārskatīšanai sadaļā Mani paplašinājumi.
- Pēc apstiprināšanas straumētāji to var instalēt no paplašinājumu tirgus.
Paplašinājumu veidi
| Tips | Atrašanās vieta | Uzvedība |
|---|---|---|
panel | Zem straumes atskaņotāja | Redzams, kad straume ir tiešraidē. Pilna platuma karte, noklusējuma augstums 300 pikseļi. |
overlay | Virs video atskaņotāja | Redzams tiešraides laikā. Pozīcija/izmērs, ko kontrolē straumētājs, izmantojot pārklājuma pozicionēšanas rīku. |
postMessage API
Jūsu paplašinājums automātiski saņem konteksta datus, kad tas tiek ielādēts. Īstenojiet šos pasākumus:
Katram ziņojumam izmantojiet precīzu D1Arena vecāku izcelsmi. Oficiālais SDK automātiski iegūst un apstiprina šo izcelsmi no iegulšanas lapas.
Tā kā paplašinājuma iframe apzināti izmanto necaurspīdīgu smilškastes izcelsmi, resursdators D1Arena autentificē tieši reģistrēto iframe logu. Pirms konteksta pieņemšanas paplašinājuma kodam joprojām ir jāautentificē vecāklogs un precīzi D1Arena izcelsme.
1. Signāla gatavība
2. Saņemt kontekstu
3. Sūtīšanas darbības (neobligāti)
Atļauju jomas
Norādiet, kādi dati ir nepieciešami jūsu paplašinājumam. Recenzenti pārbauda, vai kods atbilst jūsu deklarētajām atļaujām.
| Darbības joma | Piešķir piekļuvi |
|---|---|
read:stream | Straumes statuss, nosaukums, kategorija |
read:viewers | Skatītāju skaits un saraksts |
read:chat | Tērzēšanas ziņas (izmantojot Pusher kanālu) |
read:clips | Kanāla klipi, izmantojot /api/clips/{slug} |
read:tournaments | Aktīvās spēles informācija, izmantojot /api/active-match/{id} |
read:channel | Kanāla profils, sekotāji, grafiks |
Drošības prasības
sandbox="allow-scripts". Jūsu paplašinājums nevar piekļūst sīkfailiem, vietējai krātuvei vai veic autentificētus pieprasījumus vietnei d1arena.com.
- Nepieciešams publiskais HTTPS — Jūsu iframe URL ir jāizmanto TLS un jāatrisina tikai publiskā tīkla adreses.
- Cilvēkam lasāms avots — Nav aptumšota vai tikai samazināta JavaScript. Recenzentiem ir jāspēj nolasīt jūsu kodu.
- Netiek ielādēts ārējs skripts ja vien tas nav norādīts jūsu iesniegumā. CDN bibliotēkas (jQuery, Chart.js utt.) ir piemērotas.
- Nav datu eksfiltrācijas — Paplašinājumi nedrīkst sūtīt skatītāju datus trešās puses analīzes vai izsekošanas pakalpojumiem.
- Satura politika — Nav reklāmu, NSFW satura, kriptovalūtas ieguves vai ļaunprātīgas darbības.
Pārskatīšanas process
| Statuss | Nozīme |
|---|---|
| pending | Iesniegts, gaida administratora pārskatīšanu (parasti 1–3 darbadienas). |
| approved | Apstiprināts un redzams paplašinājumu tirgū. |
| rejected | Noraidīts ar iemeslu. Novērsiet problēmas un iesniedziet atkārtoti. |
| suspended | Uz laiku noņemts politikas pārkāpuma dēļ. Sazinieties ar atbalsta dienestu. |
Versiju atjauninājumi
Lai atjauninātu apstiprinātu paplašinājumu, izdzēsiet pašreizējo versiju un iesniedziet jaunu ar palielinātu versijas numuru. Jaunā versija atkal tiek pārskatīta.
Izmaiņu žurnāls
Izsekojiet API izmaiņām un jaunām funkcijām. Mēs sekojam semantiskajai versijai un paziņojam par pārkāpuma izmaiņām vismaz 30 dienas iepriekš.
- Sākotnējais publiskais API laidiens ar API atslēgas autentifikāciju.
- Straumes: norādiet tiešraides straumes, iegūstiet informāciju par straumētāju.
- Kategorijas: meklējiet un uzskaitiet visas spēļu kategorijas.
- Lietotāji: publiski profili ar konkurences statistiku, ELO vērtējumu un medaļu skaitu.
- Klipi: pārlūkojiet un izgūstiet klipu informāciju, izmantojot straumētāja/veidotāja informāciju.
- Turnīri: izveidojiet sarakstu, filtrējiet pēc statusa/līgas, iegūstiet dalībnieku skaitu.
- ELO uzvarētāju saraksts: globāli un pa kategorijām sakārtoti uzvarētāju saraksti.
- Līgas: norādiet līgas ar kopvērtējumu un punktu sadalījumu.
- D1 Frenzy: reāllaika Frenzy statuss jebkuram straumētājam.
- Webhooks (EventSub): 12 notikumu veidi, tostarp straume, kanāls, turnīrs, klips un Frenzy notikumi.
- Likmes ierobežojumi
Vai nepieciešama palīdzība?
Vai jums ir jautājumi par API? Sazinieties ar mums.