API-Referenz

Zeitplan-Import-API

Zeitplan-Import: Tabellen mit Zeitplanzeilen

HTTP-Referenz. Generiert aus dem Backend-Vertrag. Durchsuchen Sie die Endpunkte unten oder laden Sie OpenAPI herunter.

Diese Gruppe hat 3 Operationen, generiert aus api/openapi.yaml. Filtern Sie nach Pfad, Aktion oder Authentifizierung. Jeder Endpunkt listet seine Eingaben auf; klappen Sie ihn auf, um eine Anfragevorlage und die Antwortcodes zu sehen. Die Vorlagen brauchen Ihre eigenen Werte und einen schemagültigen Anfragekörper.

Großgeschriebene Platzhalter durch Ihre Werte ersetzen. Für eine JSON-Anfrage speichern Sie einen Body, der dem Schema in request.json entspricht. Cookie-Beispiele verwenden ein lokales Cookie-Archiv aus einer authentifizierten Sitzung.

Zeitplan-Import: Tabellen mit Zeitplanzeilen

GET/api/schedule/imports/template

Vorlage für den Zeitplan-Import abrufen

Liefert eine Tabelle mit den Spalten, die ein Zeitplan-Import liest, und drei Beispielzeilen (ein Bildschirmcode, ein Bildschirmordner und ein Tag) als CSV oder, mit format=xlsx, als XLSX-Arbeitsmappe.

Authentifizierung
projectBearer ODER dashboardSession
Anfrageinhalt
keine
Operations-ID
getScheduleImportTemplate

Parameter

NameSendenErforderlich?Beschreibung
ScreenRig-ProjectÜberschriftoptionalFür eine Veröffentlichung veraltet. Muss mit den JWT-Projektberechtigungen übereinstimmen; fügt Deprecation- und Warning-Header hinzu. Kein Token-Austausch.
FormatAbfrageoptional
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/schedule/imports/template'

Antworten

StatusBedeutungTextkörper und Header
200Die Vorlagentabelle.string (text/csv), string (application/vnd.openxmlformats-officedocument.spreadsheetml.sheet)
Standard

Stabile RFC 9457-Fehlerantwort. Ein 421 server_draining enthält Retry-After von 1 Sekunde, ein 500 not_ready oder dependency_unavailable enthält 5, und ein 500 manifest_degraded enthält 60, sofern der Handler keinen spezifischeren Wert gesetzt hat.

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

Vorschau des Zeitplan-Imports

Liest eine Tabelle mit Zeitplanzeilen gegen das Projekt und liefert, was ihr Commit bewirken würde, ohne etwas zu schreiben.

Jede Zeile nennt ein Ziel (einen Bildschirm per ID, per Wert eines Bildschirmfelds wie eines Raumcodes oder per Namen; folder:NAME; tag:NAME; mehrere getrennt durch ; oder |), Inhalt (einen Mediendateinamen oder playlist:NAME oder eine Playlist-ID), einen Beginn und ein Ende (ein Datum allein als Ende schließt diesen Tag) und optional timezone, days (Mon-Fri), ein Tagesfenster (daily_start, daily_end), priority 0 bis 100, einen Namen und Display-Nummern.

Zeiten werden auf der eigenen Uhr jedes Bildschirms gelesen; eine timezone-Spalte rechnet sie aus einer anderen Zone um.

Jede Zeile wird geprüft und meldet ihre Fehler nach Spalte: unbekannter oder mehrdeutiger Bildschirm, Ordner oder Tag, fehlende oder mehrdeutige Datei, eine Datei, die einen Bildschirm nicht füllen kann, ungültige oder umgekehrte Zeiten, ein Ende in der Vergangenheit, keine Zeitangabe, ein Bildschirm ohne Zeitzone oder Standard-Playlist, zwei Zeilen, die auf einem Bildschirm gleichzeitig mit derselben Priorität gelten, und mehr Ebenen, als ein Bildschirm fasst (32), oder mehr Kampagnen, als seine Organisation über alle ihre Projekte fasst (100; jede gemeinsame Ebene ist eine davon).

Zeilen, die in Inhalt, Zeiten, Priorität und Name übereinstimmen, werden zu einer Ebene: Ein Bildschirm ist ein Eintrag im eigenen Zeitplan dieses Bildschirms; mehrere Bildschirme, ein Ordner oder ein Tag sind eine gemeinsame Ebene (eine Kampagne), die Vorrang vor den eigenen Ebenen eines Bildschirms hat.

Die Antwort listet die Ebenen auf, mit dem, was ein Commit mit jeder tut (create, update, unchanged), die Ebenen, die ein früherer Lauf desselben Imports angelegt hat und die die Tabelle nicht mehr enthält (removals), die Stapel der Bildschirme, wie sie wären (calendar), und einen Fingerprint, der an den Commit gesendet wird. Die Tabelle besteht aus JSON-Zeilen, CSV oder XLSX, höchstens 5,000 Zeilen.

Für einen auf Bildschirme beschränkten Aufrufer nicht verfügbar (outside_screen_scope). Der Zeitplan-Import ist Teil des Enterprise-Plans; ein Projekt, dessen Plan dies nicht enthält, wird mit feature_not_in_plan (402) abgelehnt. Die Vorlage ist in jedem Plan offen.

Authentifizierung
projectBearer ODER dashboardSession
Anfrageinhalt
ScheduleImportRequest
Operations-ID
previewScheduleImport

Parameter

NameSendenErforderlich?Beschreibung
ScreenRig-ProjectÜberschriftoptionalFür eine Veröffentlichung veraltet. Muss mit den JWT-Projektberechtigungen übereinstimmen; fügt Deprecation- und Warning-Header hinzu. Kein Token-Austausch.
nameAbfrageoptionalDer Name des Imports; ein erneuter Import unter demselben Namen aktualisiert die Ebenen, die er angelegt hat (Standard import). Wird mit einem Datei-Body gesendet.
ZeitzoneAbfrageoptionalDie IANA-Zone, in der die Zeiten geschrieben sind, wenn eine Zeile keine timezone hat. Ohne sie werden die Zeiten auf der eigenen Uhr jedes Bildschirms gelesen.
QuelleAbfrageoptionalDer Dateiname, aufgezeichnet mit dem Import.
code_fieldAbfrageoptionalEinen Bildschirmcode nur aus diesem Bildschirmfeld lesen (zum Beispiel code oder room_id); sonst stimmt ein Code mit jedem Feld überein.

Anfrageinhalt-Felder

FeldBeschreibung
Name (optional, Zeichenkette)Kennzeichnet den Import; derselbe Name aktualisiert die Ebenen, die er angelegt hat (Standard import). minLength: 1 maxLength: 80
source (optional, String)Die Datei, aus der die Zeilen stammen. maxLength: 200
Zeitzone (optional, Zeichenkette)Die IANA-Zone, in der die Zeiten geschrieben sind, wenn eine Zeile keine timezone hat.
code_field (optional, String)Einen Bildschirmcode nur aus diesem Bildschirmfeld lesen.
fingerprint (optional, String)Der Fingerprint der Vorschau; für den Commit erforderlich.
rows (erforderlich, Array)
Anfragevorlage und Antworten
Shell · Anfragevorlage
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'

Antworten

StatusBedeutungTextkörper und Header
200Die Vorschau. valid ist false, solange eine Zeile einen Fehler hat.ScheduleImportPreview (application/json)
402feature_not_in_plan — Der Zeitplan-Import ist Teil des Enterprise-Plans; das Problem nennt die Funktion, den Plan, den das Konto hat, und required_plan.Problem (application/problem+json)
403

outside_screen_scope - der Aufrufer ist auf Bildschirme beschränkt, und der Bildschirm, Bildschirmordner, Selektor oder die Zielgruppe, die die Anfrage nennt oder erreicht, liegt außerhalb davon (docs/screen-scope.md). Eine ID außerhalb des Bereichs und eine ID, die nicht existiert, erhalten dieselbe Antwort; errors[0].screen_scope trägt den Bereich des Aufrufers, und der Schreibvorgang wird vollständig abgelehnt, nie eingegrenzt.

Problem (application/problem+json)
Standard

Stabile RFC 9457-Fehlerantwort. Ein 421 server_draining enthält Retry-After von 1 Sekunde, ein 500 not_ready oder dependency_unavailable enthält 5, und ein 500 manifest_degraded enthält 60, sofern der Handler keinen spezifischeren Wert gesetzt hat.

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

Zeitplan-Import committen

Führt einen in der Vorschau angezeigten Import als Commit aus: dieselbe Tabelle und der Fingerprint, den ihre Vorschau geliefert hat. Jede Ebene wird angelegt, aktualisiert oder entfernt, die Zeitpläne der Bildschirme und die gemeinsamen Ebenen werden in einer Transaktion geschrieben, und das Importereignis schedule.imported wird angehängt: Alle Zeilen werden angewendet oder keine.

Die Ein-Datei-Playlists, die die Dateien der Tabelle benötigen, werden zuerst angelegt (sie ändern nichts auf einem Bildschirm). Eine Tabelle, deren Zeilen Fehler haben, wird abgelehnt (schedule_import_invalid); ein Projekt, das sich seit der Vorschau geändert hat, oder Zeilen, die anders gelesen werden, werden abgelehnt (schedule_import_stale), und der Client ruft die Vorschau erneut auf.

Wird dieselbe Tabelle unter demselben Namen erneut importiert, ändert sich nichts; eine geänderte Zeile aktualisiert ihre Ebene, und eine entfernte Zeile entfernt ihre Ebene. Erfordert eine Person, die im Dashboard genehmigen kann, und für einen Agenten Zugangsdaten mit Schreibzugriff.

Ein Commit, der eine reservierte Kampagne aktualisieren oder löschen würde, wird mit reserved_item (403) beantwortet und schreibt nichts, es sei denn, eine Person, die genehmigen kann, führt den Commit aus.

Ein Commit, der einen geschützten Bildschirm erreicht, wird vollständig mit protected_target abgelehnt, auch wenn der Import keine levels hat, aber Importeinträge eines geschützten Bildschirms entfernt oder eine Import-Kampagne löscht, deren Zielgruppe einen solchen erreicht.

In einem Projekt mit geschützten Bildschirmordnern wird ein Commit, dessen Vorschau an einem Dienst scheitert, nicht am Blatt, mit dependency_unavailable beantwortet und schreibt nichts: Senden Sie dieselbe Anfrage nach kurzer Wartezeit erneut. Ein Validierungsfehler bei Blatt, Kampagne oder Bildschirm wird so beantwortet, wie es der Commit täte (invalid_request und die anderen oben genannten Probleme).

Für einen auf Bildschirme beschränkten Aufrufer nicht verfügbar. Der Zeitplan-Import ist Teil des Enterprise-Plans; ein Projekt, dessen Plan dies nicht enthält, wird mit feature_not_in_plan (402) abgelehnt. Die Vorlage ist in jedem Plan offen.

Authentifizierung
projectBearer ODER dashboardSession
Anfrageinhalt
ScheduleImportRequest
Operations-ID
commitScheduleImport

Parameter

NameSendenErforderlich?Beschreibung
ScreenRig-ProjectÜberschriftoptionalFür eine Veröffentlichung veraltet. Muss mit den JWT-Projektberechtigungen übereinstimmen; fügt Deprecation- und Warning-Header hinzu. Kein Token-Austausch.
Idempotency-KeyÜberschriftoptionalFür einen frischen Vorgang weglassen. Geben Sie einen Schlüssel an und verwenden Sie ihn erneut, um Wiederholungen zu deduplizieren; die CLI verwaltet Schlüssel automatisch.
fingerprintAbfrageoptionalDer Fingerprint der Vorschau, für einen CSV- oder XLSX-Body; ein JSON-Body trägt ihn als Feld.
nameAbfrageoptionalDer Name des Imports; ein erneuter Import unter demselben Namen aktualisiert die Ebenen, die er angelegt hat (Standard import). Wird mit einem Datei-Body gesendet.
ZeitzoneAbfrageoptionalDie IANA-Zone, in der die Zeiten geschrieben sind, wenn eine Zeile keine timezone hat. Ohne sie werden die Zeiten auf der eigenen Uhr jedes Bildschirms gelesen.
QuelleAbfrageoptionalDer Dateiname, aufgezeichnet mit dem Import.
code_fieldAbfrageoptionalEinen Bildschirmcode nur aus diesem Bildschirmfeld lesen (zum Beispiel code oder room_id); sonst stimmt ein Code mit jedem Feld überein.

Anfrageinhalt-Felder

FeldBeschreibung
Name (optional, Zeichenkette)Kennzeichnet den Import; derselbe Name aktualisiert die Ebenen, die er angelegt hat (Standard import). minLength: 1 maxLength: 80
source (optional, String)Die Datei, aus der die Zeilen stammen. maxLength: 200
Zeitzone (optional, Zeichenkette)Die IANA-Zone, in der die Zeiten geschrieben sind, wenn eine Zeile keine timezone hat.
code_field (optional, String)Einen Bildschirmcode nur aus diesem Bildschirmfeld lesen.
fingerprint (optional, String)Der Fingerprint der Vorschau; für den Commit erforderlich.
rows (erforderlich, Array)
Anfragevorlage und Antworten
Shell · Anfragevorlage
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'

Antworten

StatusBedeutungTextkörper und Header
200Was der Commit angewendet hat.ScheduleImportCommitted (application/json)
402feature_not_in_plan — Der Zeitplan-Import ist Teil des Enterprise-Plans; das Problem nennt die Funktion, den Plan, den das Konto hat, und required_plan.Problem (application/problem+json)
403

outside_screen_scope oder approver_required wie bei ScreenScopePlays oder reserved_item - eine reservierte Kampagne wird nur von einer Person geändert, pausiert, gelöscht oder auf nicht reserviert gesetzt, die Überprüfungen genehmigen kann, nie von einem Agenten oder Service-Client (docs/screen-scope.md).

Problem (application/problem+json)
409

protected_target - die Änderung erreicht einen Bildschirm in einem geschützten Bildschirmordner und hat kein Überprüfungsformular (docs/screen-scope.md). Heben Sie den Schutz des Ordners über eine Überprüfung auf, nehmen Sie die Änderung vor und schützen Sie den Ordner wieder.

Problem (application/problem+json)
500dependency_unavailable - die Prüfung auf geschützte Bildschirmordner konnte nicht ausgeführt werden; senden Sie dieselbe Anfrage nach kurzer Wartezeit erneut.Problem (application/problem+json)
Standard

Stabile RFC 9457-Fehlerantwort. Ein 421 server_draining enthält Retry-After von 1 Sekunde, ein 500 not_ready oder dependency_unavailable enthält 5, und ein 500 manifest_degraded enthält 60, sofern der Handler keinen spezifischeren Wert gesetzt hat.

Problem (application/problem+json)