OpenAPI YAMLOpenAPI JSONProbleme YAMLAPI-Überblick
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
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.
Parameter
| Name | Senden | Erforderlich? | Beschreibung |
|---|---|---|---|
| ScreenRig-Project | Überschrift | optional | Für eine Veröffentlichung veraltet. Muss mit den JWT-Projektberechtigungen übereinstimmen; fügt Deprecation- und Warning-Header hinzu. Kein Token-Austausch. |
| Format | Abfrage | optional |
Anfragevorlage und Antworten
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/schedule/imports/template'Antworten
| Status | Bedeutung | Textkörper und Header |
|---|---|---|
| 200 | Die 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) |
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.
Parameter
| Name | Senden | Erforderlich? | Beschreibung |
|---|---|---|---|
| ScreenRig-Project | Überschrift | optional | Für eine Veröffentlichung veraltet. Muss mit den JWT-Projektberechtigungen übereinstimmen; fügt Deprecation- und Warning-Header hinzu. Kein Token-Austausch. |
| name | Abfrage | optional | Der Name des Imports; ein erneuter Import unter demselben Namen aktualisiert die Ebenen, die er angelegt hat (Standard import). Wird mit einem Datei-Body gesendet. |
| Zeitzone | Abfrage | optional | Die 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. |
| Quelle | Abfrage | optional | Der Dateiname, aufgezeichnet mit dem Import. |
| code_field | Abfrage | optional | Einen Bildschirmcode nur aus diesem Bildschirmfeld lesen (zum Beispiel code oder room_id); sonst stimmt ein Code mit jedem Feld überein. |
Anfrageinhalt-Felder
| Feld | Beschreibung |
|---|---|
| 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
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
| Status | Bedeutung | Textkörper und Header |
|---|---|---|
| 200 | Die Vorschau. valid ist false, solange eine Zeile einen Fehler hat. | ScheduleImportPreview (application/json) |
| 402 | feature_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) |
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.
Parameter
| Name | Senden | Erforderlich? | Beschreibung |
|---|---|---|---|
| ScreenRig-Project | Überschrift | optional | Für eine Veröffentlichung veraltet. Muss mit den JWT-Projektberechtigungen übereinstimmen; fügt Deprecation- und Warning-Header hinzu. Kein Token-Austausch. |
| Idempotency-Key | Überschrift | optional | Fü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. |
| fingerprint | Abfrage | optional | Der Fingerprint der Vorschau, für einen CSV- oder XLSX-Body; ein JSON-Body trägt ihn als Feld. |
| name | Abfrage | optional | Der Name des Imports; ein erneuter Import unter demselben Namen aktualisiert die Ebenen, die er angelegt hat (Standard import). Wird mit einem Datei-Body gesendet. |
| Zeitzone | Abfrage | optional | Die 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. |
| Quelle | Abfrage | optional | Der Dateiname, aufgezeichnet mit dem Import. |
| code_field | Abfrage | optional | Einen Bildschirmcode nur aus diesem Bildschirmfeld lesen (zum Beispiel code oder room_id); sonst stimmt ein Code mit jedem Feld überein. |
Anfrageinhalt-Felder
| Feld | Beschreibung |
|---|---|
| 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
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
| Status | Bedeutung | Textkörper und Header |
|---|---|---|
| 200 | Was der Commit angewendet hat. | ScheduleImportCommitted (application/json) |
| 402 | feature_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) |
| 500 | dependency_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) |