Accedi

API e integrazioni

Gestisci una stanza Cliqer Timer dai tuoi strumenti via HTTP e ricevi un webhook firmato quando lo show va avanti.

Ogni stanza ha un'API HTTP. Avvia e ferma i timer, mostra messaggi, aggiungi tempo e leggi la scaletta da uno script, da un sistema di show control o da qualsiasi cosa in grado di effettuare una richiesta web. Un webhook avvisa il tuo sistema quando un timer parte o termina.

La pagina delle chiavi API con un pulsante Crea chiave e ancora nessuna chiave
Chiavi API dell'account, sotto Team nella tua dashboard.

Per iniziare

Crea una chiave API

Apri Chiavi API e fai clic su Crea chiave. Copiala subito: viene mostrata una sola volta. Vedi Team e chiavi API.

Trova l'id della stanza

È la parte dopo /timer/r/ nell'indirizzo della regia, ad esempio https://cliqer.io/timer/r/<room>/control.

Effettua una chiamata

Invia la chiave con ogni richiesta. ping verifica che la stanza esista.

L'API gestisce la stessa stanza della regia: una chiamata dal tuo strumento appare su tutti gli schermi contemporaneamente.

Richieste

Ogni chiamata è https://cliqer.io/api/timer/v1/<room>/<action>. Funzionano GET, POST, PUT e PATCH. I parametri vanno nella query string oppure in un body JSON con POST, PUT e PATCH; se sono presenti in entrambi, prevale il body. Funzionano anche i trattini nel nome dell'azione, quindi add-time equivale a add_time. /api/timer/v0/ accetta le stesse chiamate.

Invia la chiave in uno di questi modi, verificati in quest'ordine:

DoveEsempio
Header AuthorizationAuthorization: Bearer <key>
Header x-api-keyx-api-key: <key>
Query api_key?api_key=<key>. Evitalo quando puoi: gli indirizzi finiscono nei log.
curl -X POST https://cliqer.io/api/timer/v1/<room>/add_time \
  -H "Authorization: Bearer $CLIQER_KEY" \
  -H "content-type: application/json" \
  -d '{"timer_id": "<timer>", "amount": "2m"}'

Chiavi e permessi

La chiave API del tuo account può fare tutto nelle stanze di tua proprietà. Una stanza può anche avere chiavi proprie, ognuna con alcuni dei tre permessi:

PermessoConsente
LetturaLe azioni get_ e export.
Conduzione showControlli di avvio e arresto, tempo, blackout, on air e messaggi.
ModificaEliminazione, importazione, intent raw e webhook.

Una chiamata che richiede un permesso che la chiave non ha riceve 401. Il segreto di una chiave di stanza viene mostrato una sola volta, al momento della creazione. Per usare l'API è necessario che sia inclusa nel tuo piano, vedi Piani e limiti.

Azioni

timer_id sceglie un timer tramite il suo id; index lo sceglie in base alla posizione, contando da 1. Se li invii entrambi, prevale timer_id. Omettili entrambi per agire sul timer corrente.

AzioneRestituisce
get_roomTitolo, data, fuso orario e impostazioni.
get_statusCosa è in esecuzione ora.
get_timersLa scaletta.
get_messagesI messaggi.
get_questionsLe domande del pubblico.
get_connectionsI dispositivi connessi.
get_logsIl log della stanza. limit, offset.
exportL'intera stanza come download cliqer-timer-<room>.json.

Le quantità sono 30s, 5m, 1h, 250ms oppure un semplice numero di secondi. seconds funziona al posto di amount, e un segno meno va all'indietro. Gli interruttori come on, autostart e replace interpretano 0, false, off e no come disattivato e qualsiasi altro valore come attivato. Ometti on in blackout per alternarlo.

Risposte

Ogni risposta è in JSON: {"ok": true, "message": "<action>", "data": ...} in caso di successo, {"ok": false, "message": "...", "code": "..."} in caso di errore.

StatoMessaggioMotivo
400Either timer_id OR index are requiredselect senza un timer.
400amount is required, like 30s, 5m or 1hQuantità mancante o non leggibile.
400Refused: invalidLa stanza non ha potuto applicarla.
401Access Denied: Valid API key requiredNessuna chiave, una chiave errata o un permesso mancante.
403The API is not in this planIl piano della stanza non include l'API.
403Refused: forbidden, Refused: readOnly, Refused: limitReachedNon consentito, una stanza in sola lettura o un limite del piano.
404Room not found, Unknown action <name>, Timer not foundControlla l'id della stanza, l'azione o l'id del timer.
409Refused: staleEpochLa stanza è cambiata durante la chiamata. Inviala di nuovo.
429Too many requests. Please try again later.Limite di frequenza.
503Refused: authorityOfflineLa stanza è nel cestino. Ripristinala prima.

Limite di frequenza: 100 chiamate al minuto per chiave; le chiamate senza chiave vengono conteggiate per indirizzo. Ogni risposta include RateLimit-Limit, RateLimit-Remaining e RateLimit-Reset (i secondi mancanti all'inizio del minuto successivo).

Webhook

Imposta l'indirizzo

Chiama webhook con un url https. La risposta contiene un secret che inizia con whsec_. Conservalo: viene mostrato una sola volta.

Ricevi gli eventi

Cliqer Timer invia una richiesta POST a quell'indirizzo quando succede qualcosa nella stanza.

Verifica la firma

Verifica ogni richiesta prima di fidarti.

Rimuovilo

Chiama webhook senza url. L'indirizzo e il relativo segreto vengono eliminati entrambi.

EventoQuando
timerStartedUn timer parte.
timerEndedUn timer arriva a zero.
wrapUpYellowUn timer raggiunge il punto di chiusura giallo.
wrapUpRedUn timer raggiunge il punto di chiusura rosso.
messageShownViene mostrato un messaggio.

Il body è {"event", "roomId", "timestamp", "payload"}. L'header x-cliqer-timestamp contiene l'ora Unix in secondi, e x-cliqer-signature contiene sha256= seguito dall'HMAC-SHA256 esadecimale di <timestamp>.<body> calcolato con il tuo segreto come chiave.

# Recompute the signature of a saved body.
printf '%s.%s' "$TIMESTAMP" "$(cat body.json)" \
  | openssl dgst -sha256 -hmac "$WHSEC" -hex

Firma il body grezzo esattamente come è arrivato, prima di qualsiasi parsing JSON. La finestra di cinque minuti è una tua scelta; impedisce che una vecchia richiesta venga riutilizzata.

La consegna prevede un solo tentativo con un timeout di 5 secondi. I redirect non vengono seguiti, e un indirizzo che si risolve in una rete privata viene scartato. Se un evento perso è importante, leggi get_status per rimetterti in pari.

GET https://cliqer.io/api/timer/link/<code> converte il codice di un link breve nella sua stanza: {"ok": true, "data": {"roomId", "link"}}, oppure 404 Link not found per un codice sconosciuto, revocato o scaduto o per una password errata. Per un link con password, inviala nell'header x-link-password, mai nell'indirizzo.

Companion e Stream Deck

Non esiste un modulo Companion né un plugin Stream Deck per le stanze Cliqer Timer. Il modulo Generic HTTP di Bitfocus Companion può chiamare le azioni indicate sopra. Il timer integrato nell'app desktop Cliqer ha una propria API REST e il supporto per Stream Deck, vedi Timer (desktop) e Timer host.

Domande frequenti

Prossimi passi

Offline e affidabilità

Cosa succede quando cade la rete.

Piani e limiti

Quali piani includono l'API.