← Toate articolele

BoothDock · Wiki

Webhook-uri și API

BoothDock Studio poate anunța alte programe despre fiecare pas al unei sesiuni (webhook-uri) și se poate lăsa controlat de alte programe (API locală). Pe amândouă le găsești în zona de administrare, la Sistem → Automatizare.

În BoothDock Studio 1.4.0 și în versiunile mai vechi, webhook-urile se numesc acolo încă „Declanșatoare”.

Webhook-urile și exportul în timp real există doar pe Windows. API-ul local este disponibil începând cu versiunea 1.4.0 și pe iPad și iPhone.

Utilizări tipice: lumini sau DMX sincronizate cu numărătoarea inversă, un overlay pentru stream, un contor la intrare – sau un Stream Deck ca telecomandă pentru cabină.

Sistem → Automatizare: export în timp real, webhook-uri și API locală
Sistem → Automatizare: export în timp real, webhook-uri și API locală

Configurarea webhook-urilor

Completează câmpul Program, câmpul Adresă (URL) sau pe amândouă. La fiecare eveniment, cabina le apelează pe amândouă:

  • Program – un .exe, .bat sau .cmd. Apel: program <eveniment> <param1> <param2> …. Fiecare valoare ajunge ca argument separat, chiar dacă conține spații. Programul pornește fără fereastră, în propriul folder. Un script PowerShell (.ps1) îl pornești printr-un mic .bat pus în fața lui.
  • Adresă (URL) – http sau https, apelată prin GET: https://serverul-tau/hook?event_type=<eveniment>&param1=…&param2=…. Valorile sunt codificate URL; parametrii care există deja în adresa ta se păstrează.

Sesiunea nu așteaptă niciodată după webhook-ul tău: programul și apelul rulează în paralel, iar un apel poate dura cel mult 5 secunde. Trimite test trimite imediat un session_start – așa verifici conexiunea fără să pornești o sesiune.

Programul și adresa se pot seta doar direct la cabină, nu prin Hub: o cale de program înseamnă dreptul de a executa ceva pe calculator.

Evenimente

EvenimentCândParametri
session_startUn invitat pornește o sesiune, modul este stabilit1: mod (PrintOnly, PrintAndGIF, OnlyGIF, SlowMoOr360, Video), 2: mod BoothDock (photo, gif, boomerang, video, slowmo, ai)
countdown_startÎncepe numărătoarea inversă1: secunde
countdownFiecare secundă a numărătorii inverse1: progres în procente (de la 0)
capture_startNumărătoarea s-a încheiat, începe captura–
file_downloadCamera a salvat o fotografie1: nume de fișier, 2: cale completă
processing_startÎncepe procesareacâte un nume de fișier pentru fiecare original al camerei, ca ultimă valoare fișierul de imprimare (momentan gol)
sharing_screenApare ecranul cu rezultatul (o dată pe sesiune)–
printingO foaie pleacă la o imprimantă1: fișier (momentan gol), 2: copii, 3: imprimantă
file_uploadUn fișier a ajuns în Hub (pentru fiecare fișier)1: cale pe cabină, 2: link de galerie, 3: tip (print, photo, original, animation, boomerang, video), 4: album (numele evenimentului)
session_endSesiunea se încheie – finalizată, anulată, expirată sau ștearsă–

Exemplu de .bat care notează fiecare eveniment: echo %DATE% %TIME% %* >> "%~dp0evenimente.log"

API locală

Alte programe controlează cabina prin HTTP – de exemplu un Stream Deck, un script propriu sau o comandă 360° de pe telefon.

  • Activare: Sistem → Automatizare → Activează API. Din fabrică, API-ul este oprit. Port 1500, modificabil.
  • Adresă: http://localhost:1500/api/<comanda> (sau 127.0.0.1). Din fabrică, cabina acceptă cereri doar de pe acest calculator.
  • Parolă: 16 caractere, afișată în aceeași secțiune – o copiezi sau generezi una nouă. O trimiți ca ?password=…, ca antet X-Api-Password sau ca Authorization: Bearer …. Doar ping merge fără ea.
  • Răspuns: întotdeauna HTTP 200 cu JSON, de exemplu {"ApiVersion":1,"Command":"cancel","IsSuccessful":true,"ErrorMessage":""}. Dacă a reușit afli din IsSuccessful, iar motivul unei erori din ErrorMessage. Unele comenzi livrează în plus Data.

Un apel complet: http://localhost:1500/api/start?mode=print&password=PAROLA-TA

Control din rețea (telefon, tabletă, 360°)

Activează în plus Accesibil și din rețea. Atunci cabina acceptă cereri de la dispozitive din aceeași rețea Wi-Fi/LAN – niciodată din internet.

  • Adresa pentru telefon: apare în linia de stare, de exemplu http://192.168.1.20:1500. Exemplul de dedesubt arată atunci direct adresa potrivită.
  • Fără introducerea IP-ului: cabina se anunță singură în rețea (mDNS/Bonjour, tip de serviciu _boothdock._tcp, nume „BoothDock” plus numele calculatorului). Aplicațiile care o caută o găsesc automat.
  • Blocare: dacă un dispozitiv trimite de zece ori în zece minute o parolă greșită, este blocat 15 minute. Calculatorul cabinei nu este blocat niciodată.
  • Doar în rețeaua proprie: parola circulă necriptată prin rețea. Folosește modul de rețea doar în propria rețea Wi-Fi protejată – nu în rețeaua Wi-Fi deschisă pentru invitați a locației.
  • Paravanul de protecție (firewall): instalarea creează regula, doar pentru rețele private. Dacă linia de stare arată un avertisment despre paravanul de protecție, reinstalează BoothDock Studio sau permite-l în Windows la „Permiteți o aplicație prin paravanul de protecție”. Dacă Windows tratează rețeaua Wi-Fi ca publică, dispozitivele nu pot intra – setează profilul la Privată în proprietățile rețelei.

Comenzi

ComandăEfect
start?mode=printPornește o sesiune. Moduri: print (foto), gif, boomerang, slowmo (360°; fără 360°, boomerang), video, ai. Funcționează doar din ecranul de start, doar cu modul activat și nu când cabina este blocată.
cancelAnulează sesiunea în curs și revine la ecranul de start.
statusLivrează în Data: modul invitat pornit/oprit, ecranul curent, modul, blocată da/nu.
print?count=1Tipărește încă o dată ultimul rezultat (1 până la 10 foi). Videoclipurile nu pot fi tipărite.
lockscreen/showBlochează cabina cu „Un moment – continuăm imediat.” Colțul de administrare rămâne accesibil.
lockscreen/exitRidică blocarea.
share/email?email=…Trimite ultimul rezultat prin e-mail – necesită cuplarea cu Hub-ul și acțiunea pentru rezultat „Primește prin e-mail” (Sistem → Funcționare → Acțiuni pentru rezultat (invitat); până la 1.4.0, comutatorul „Fotografie prin e-mail (invitat)” de la Design → Ecrane).
share/smsNu există; răspunsul o spune cinstit (IsSuccessful: false).
createtestevent?name=…Creează un eveniment de test și îl face activ. Data conține eventId și eventName. Fără nume primește unul cu data.
deletetestevent?eventId=…Șterge un eveniment de test creat prin API – niciodată alte evenimente.
pingVerifică fără parolă dacă API-ul rulează.

Dacă cabina nu răspunde în 15 secunde, primești înapoi IsSuccessful: false cu o indicație.

Export în timp real

În aceeași filă alegi un Folder de export – de exemplu un stick USB sau un folder cloud (OneDrive, Dropbox). Fiecare fișier finalizat ajunge acolo imediat, sortat după eveniment și tip (Printuri, Originale, GIF-uri, Videoclipuri – fiecare se poate dezactiva separat). Dacă stick-ul lipsește pentru scurt timp, cabina copiază fișierele ulterior. Dacă un invitat își șterge sesiunea la cabină, dispar și copiile.

Pornire cu telecomanda

În aceeași filă, la Pornire cu telecomanda înveți o tastă. Telecomenzile de prezentare, butoanele USB și pedalele trimit de obicei bara de spațiu; aceasta este presetată. La Pornește alegi ce declanșează tasta pe ecranul de start: Ca la atingere (flux normal) sau direct un mod, de exemplu 360° pe platformă. În BoothDock Studio 1.4.0 și în versiunile mai vechi, tasta există doar pentru 360°, vezi 360° / încetinire.

Depanare

  • Nu se întâmplă nimic: apare ceva în jurnal? Webhook-urile scriu în webhooks.log (până la 1.4.0: ausloeser.log), API-ul în lokale-api.log – ambele în folderul %LocalAppData%\Boothdock Studio\logs. Cererile respinse (parolă greșită, dispozitiv străin) apar acolo cel mult o dată pe minut.
  • „Invalid password.” – copiază din nou parola; după Parolă nouă, cea veche nu mai este valabilă.
  • „The booth is not on the start screen …” – start merge doar din ecranul de start. Întâi cancel, apoi start.
  • „Too many failed attempts …” – dispozitivul a trimis prea des o parolă greșită. Așteaptă 15 minute și verifică parola.
  • Telefonul nu ajunge la cabină, dar pe calculator merge totul: aproape întotdeauna e paravanul de protecție Windows sau o rețea Wi-Fi tratată ca publică – vezi mai sus. Linia de stare semnalează ambele cazuri.

Pașii următori