Riferimento API

API Importazione programmazione

Importazione programmazione: fogli di righe di programmazione

Riferimento HTTP. Generato dal contratto backend. Esplora gli endpoint qui sotto o scarica OpenAPI.

Questo gruppo ha 3 operazioni, generate da api/openapi.yaml. Filtra per percorso, azione o autenticazione. Ogni endpoint elenca i suoi input; espandilo per vedere un modello di richiesta e i codici di risposta. I modelli richiedono i tuoi valori e un corpo valido secondo lo schema.

Sostituisci i segnaposto maiuscoli con i tuoi valori. Per una richiesta JSON, salva un corpo che corrisponde allo schema in request.json. Gli esempi di cookie usano un cookie jar locale da una sessione autenticata.

Importazione programmazione: fogli di righe di programmazione

GET/api/schedule/imports/template

Ottieni modello importazione programmazione

Risponde con un foglio con le colonne lette da un’importazione di programmazione e tre righe di esempio (un codice schermo, una cartella di schermi e un tag), come CSV oppure, con format=xlsx, come cartella di lavoro XLSX.

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
nessuno
ID operazione
getScheduleImportTemplate

Parametri

NomeInviaObbligatorio?Descrizione
ScreenRig-ProjectintestazioneopzionaleDeprecato per una release. Deve essere coerente con le concessioni JWT dei progetti; aggiunge intestazioni Deprecation e Warning. Nessuno scambio di token.
formatoqueryopzionale
Modello richiesta e risposte
shell · modello richiesta
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/schedule/imports/template'

Risposte

StatoSignificatoCorpo e intestazioni
200Il foglio del modello.string (text/csv), string (application/vnd.openxmlformats-officedocument.spreadsheetml.sheet)
predefinito

Risposta problema stabile RFC 9457. Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore.

Problema (application/problem+json)
POST/api/schedule/imports/preview

Anteprima importazione programmazione

Legge un foglio di righe di programmazione rispetto al progetto e risponde con ciò che farebbe il commit, senza scrivere nulla.

Ogni riga indica una destinazione (uno schermo per id, per valore di un campo dello schermo come un codice stanza, o per nome; folder:NAME; tag:NAME; più destinazioni separate da ; o |), un contenuto (il nome di un file multimediale, oppure playlist:NAME o un id di playlist), un inizio e una fine (una sola data come fine chiude quel giorno) e, facoltativamente, timezone, days (Mon-Fri), una finestra giornaliera (daily_start, daily_end), priority da 0 a 100, un nome e i numeri dei display.

Gli orari sono letti sull’orologio di ciascuno schermo; una colonna timezone li converte da un altro fuso.

Ogni riga viene controllata e segnala i suoi errori per colonna: schermo, cartella o tag sconosciuto o ambiguo, file mancante o ambiguo, un file che non può riempire uno schermo, orari non validi o invertiti, una fine nel passato, nessuna indicazione di tempo, uno schermo senza fuso orario o playlist predefinita, due righe valide insieme su uno schermo con la stessa priorità, e più livelli di quelli che uno schermo può contenere (32), o più campagne di quelle che la sua organizzazione può avere in tutti i suoi progetti (100; ogni livello condiviso ne è una).

Le righe che coincidono per contenuto, orari, priorità e nome diventano un solo livello: uno schermo è una voce della sua programmazione propria; più schermi, una cartella o un tag sono un unico livello condiviso (una campagna), che prevale sui livelli propri di uno schermo.

La risposta elenca i livelli con ciò che un commit fa a ciascuno (create, update, unchanged), i livelli creati da un’esecuzione precedente della stessa importazione che il foglio non ha più (removals), gli stack degli schermi come sarebbero (calendar) e un fingerprint da inviare al commit. Il foglio è composto da righe JSON, CSV o XLSX, al massimo 5.000 righe.

Non disponibile per un chiamante limitato agli schermi (outside_screen_scope). L’importazione programmazione fa parte del piano Enterprise; un progetto il cui piano ne è privo viene rifiutato con feature_not_in_plan (402). Il modello è disponibile in ogni piano.

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
ScheduleImportRequest
ID operazione
previewScheduleImport

Parametri

NomeInviaObbligatorio?Descrizione
ScreenRig-ProjectintestazioneopzionaleDeprecato per una release. Deve essere coerente con le concessioni JWT dei progetti; aggiunge intestazioni Deprecation e Warning. Nessuno scambio di token.
namequeryopzionaleIl nome dell’importazione; importare di nuovo con lo stesso nome aggiorna i livelli che ha creato (default import). Inviato con un corpo file.
fuso orarioqueryopzionaleIl fuso IANA in cui sono scritti gli orari quando una riga non ha timezone. Senza di esso, gli orari sono letti sull’orologio di ciascuno schermo.
originequeryopzionaleIl nome del file, registrato con l’importazione.
code_fieldqueryopzionaleLeggi un codice schermo solo da questo campo dello schermo (per esempio code o room_id); altrimenti un codice corrisponde a qualsiasi campo.

Campi del corpo della richiesta

CampoDescrizione
nome (opzionale, stringa)Identifica l’importazione; lo stesso nome aggiorna i livelli che ha creato (default import). minLength: 1 maxLength: 80
source (facoltativo, string)Il file da cui provengono le righe. maxLength: 200
fuso orario (opzionale, stringa)Il fuso IANA in cui sono scritti gli orari quando una riga non ha timezone.
code_field (facoltativo, string)Leggi un codice schermo solo da questo campo dello schermo.
fingerprint (facoltativo, string)Il fingerprint dell’anteprima; obbligatorio per il commit.
rows (obbligatorio, array)
Modello richiesta e risposte
shell · modello richiesta
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/schedule/imports/preview'

Risposte

StatoSignificatoCorpo e intestazioni
200L’anteprima. valid è false finché una riga ha un errore.ScheduleImportPreview (application/json)
402feature_not_in_plan — L’importazione programmazione fa parte del piano Enterprise; il problema indica la funzione, il piano dell’account e required_plan.Problema (application/problem+json)
403

outside_screen_scope - il chiamante è limitato agli schermi e lo schermo, la cartella di schermi, il selettore o il pubblico che la richiesta nomina o raggiunge è fuori da essi (docs/screen-scope.md). Un id fuori dall’ambito e un id che non esiste ricevono la stessa risposta; errors[0].screen_scope riporta l’ambito del chiamante, e la scrittura viene rifiutata per intero, mai ridotta.

Problema (application/problem+json)
predefinito

Risposta problema stabile RFC 9457. Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore.

Problema (application/problem+json)
POST/api/schedule/imports

Commit importazione programmazione

Esegue il commit di un’importazione in anteprima: lo stesso foglio e il fingerprint restituito dalla sua anteprima. Ogni livello viene creato, aggiornato o rimosso, le programmazioni degli schermi e i livelli condivisi vengono scritti in un’unica transazione e l’evento di importazione schedule.imported viene aggiunto: tutte le righe vengono applicate, oppure nessuna.

Le playlist di un solo file necessarie ai file del foglio vengono create per prime (non cambiano nulla su alcuno schermo). Un foglio con righe con errori viene rifiutato (schedule_import_invalid); un progetto cambiato dopo l’anteprima, o righe lette in modo diverso, viene rifiutato (schedule_import_stale) e il client visualizza di nuovo l’anteprima.

Importare di nuovo lo stesso foglio con lo stesso nome non cambia nulla; una riga modificata aggiorna il suo livello e una riga rimossa rimuove il suo livello. Serve una persona che possa approvare nella dashboard e, per un agente, una credenziale con accesso in scrittura.

Un commit che aggiornerebbe o eliminerebbe una campagna riservata risponde con reserved_item (403) e non scrive nulla, a meno che non lo esegua una persona che può approvare.

Un commit che raggiunge uno schermo protetto viene rifiutato per intero con protected_target, anche quando l’importazione non ha livelli ma rimuove voci importate di uno schermo protetto o elimina una campagna importata il cui pubblico ne raggiunge uno.

In un progetto con cartelle di schermi protette un commit la cui anteprima fallisce a causa di un servizio, non del foglio, risponde con dependency_unavailable e non scrive nulla: invia di nuovo la stessa richiesta dopo una breve attesa. Un errore di convalida del foglio, della campagna o dello schermo risponde come risponderebbe il commit (invalid_request e gli altri problemi sopra).

Non disponibile per un chiamante limitato agli schermi. L’importazione programmazione fa parte del piano Enterprise; un progetto il cui piano ne è privo viene rifiutato con feature_not_in_plan (402). Il modello è disponibile in ogni piano.

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
ScheduleImportRequest
ID operazione
commitScheduleImport

Parametri

NomeInviaObbligatorio?Descrizione
ScreenRig-ProjectintestazioneopzionaleDeprecato per una release. Deve essere coerente con le concessioni JWT dei progetti; aggiunge intestazioni Deprecation e Warning. Nessuno scambio di token.
Idempotency-KeyintestazioneopzionaleOmetti per un’operazione fresca. Fornisci e riutilizza una chiave per deduplicare i retry; la CLI gestisce automaticamente le chiavi.
fingerprintqueryopzionaleIl fingerprint dell’anteprima, per un corpo CSV o XLSX; un corpo JSON lo porta come membro.
namequeryopzionaleIl nome dell’importazione; importare di nuovo con lo stesso nome aggiorna i livelli che ha creato (default import). Inviato con un corpo file.
fuso orarioqueryopzionaleIl fuso IANA in cui sono scritti gli orari quando una riga non ha timezone. Senza di esso, gli orari sono letti sull’orologio di ciascuno schermo.
originequeryopzionaleIl nome del file, registrato con l’importazione.
code_fieldqueryopzionaleLeggi un codice schermo solo da questo campo dello schermo (per esempio code o room_id); altrimenti un codice corrisponde a qualsiasi campo.

Campi del corpo della richiesta

CampoDescrizione
nome (opzionale, stringa)Identifica l’importazione; lo stesso nome aggiorna i livelli che ha creato (default import). minLength: 1 maxLength: 80
source (facoltativo, string)Il file da cui provengono le righe. maxLength: 200
fuso orario (opzionale, stringa)Il fuso IANA in cui sono scritti gli orari quando una riga non ha timezone.
code_field (facoltativo, string)Leggi un codice schermo solo da questo campo dello schermo.
fingerprint (facoltativo, string)Il fingerprint dell’anteprima; obbligatorio per il commit.
rows (obbligatorio, array)
Modello richiesta e risposte
shell · modello richiesta
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/schedule/imports'

Risposte

StatoSignificatoCorpo e intestazioni
200Cosa ha applicato il commit.ScheduleImportCommitted (application/json)
402feature_not_in_plan — L’importazione programmazione fa parte del piano Enterprise; il problema indica la funzione, il piano dell’account e required_plan.Problema (application/problem+json)
403

outside_screen_scope o approver_required come su ScreenScopePlays, oppure reserved_item - una campagna riservata viene modificata, messa in pausa, eliminata o resa non riservata solo da una persona che può approvare le revisioni, mai da un agente o da un client di servizio (docs/screen-scope.md).

Problema (application/problem+json)
409

protected_target - la modifica raggiunge uno schermo in una cartella di schermi protetta e non ha una forma di revisione (docs/screen-scope.md). Rimuovi la protezione della cartella tramite una revisione, fai la modifica e proteggi di nuovo la cartella.

Problema (application/problem+json)
500dependency_unavailable - il controllo delle cartelle di schermi protette non ha potuto essere eseguito; invia di nuovo la stessa richiesta dopo una breve attesa.Problema (application/problem+json)
predefinito

Risposta problema stabile RFC 9457. Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore.

Problema (application/problem+json)