API リファレンス

スケジュールインポート API

スケジュールインポート:スケジュール行のシート

HTTP リファレンス。 バックエンド契約から生成。以下のエンドポイントを参照するか、OpenAPI をダウンロードしてください。

このグループには 3 件のオペレーションがあり、api/openapi.yaml から生成されています。パス、アクション、認証で絞り込めます。各エンドポイントには入力が一覧され、展開するとリクエストテンプレートとレスポンスコードを確認できます。テンプレートには、ご自身の値とスキーマに適合する本文が必要です。

大文字のプレースホルダーをあなたの値に置き換えます。JSONリクエストの場合、request.jsonのスキーマに合うボディを保存します。Cookie例は認証済みセッションのローカルCookieジャーを使用します。

スケジュールインポート:スケジュール行のシート

GET/api/schedule/imports/template

スケジュールインポートテンプレートを取得

スケジュールインポートが読む列と3つのサンプル行(スクリーンコード、スクリーンフォルダー、タグ)を含むシートを、CSV または format=xlsx を指定した場合は XLSX ワークブックとして返します。

認証
projectBearer または dashboardSession
リクエスト本文
なし
操作ID
getScheduleImportTemplate

パラメーター

名前送信する必須?説明
ScreenRig-Projectヘッダーオプション1リリースの間非推奨。JWTプロジェクトの権限と整合性が必要。Deprecation と Warning ヘッダーを追加。トークン交換なし。
フォーマットクエリオプション
リクエストテンプレートとレスポンス
シェル・リクエストテンプレート
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/schedule/imports/template'

レスポンス

ステータス意味本文とヘッダー
200テンプレートのシート。文字列(text/csv)、文字列(application/vnd.openxmlformats-officedocument.spreadsheetml.sheet)
デフォルト

安定した RFC 9457 問題応答。421 server_draining は Retry-After 1秒、500 not_ready または dependency_unavailable は 5秒、500 manifest_degraded は 60秒を持ちます。ハンドラーがより具体的な値を設定していない場合。

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

スケジュールインポートのプレビュー

スケジュール行のシートをプロジェクトに照らして読み取り、確定した場合に何が行われるかを返します。何も書き込みません。

各行には、対象(スクリーン ID、部屋コードなどのスクリーンフィールドの値、または名前によるスクリーン、folder:NAME、tag:NAME。複数の場合は ; または | で区切る)、コンテンツ(メディアファイル名、playlist:NAME、またはプレイリスト ID)、開始と終了(終了に日付だけを指定するとその日いっぱいで終了)を指定します。任意で timezone、days (Mon-Fri)、毎日の時間帯(daily_start、daily_end)、0から100の priority、名前、ディスプレイ番号も指定できます。

時刻は各スクリーン自身の時計で読み取られます。timezone 列で別のタイムゾーンから変換できます。

すべての行が検証され、エラーは列ごとに報告されます。不明または曖昧なスクリーン、フォルダー、タグ、存在しないまたは曖昧なファイル、スクリーンを満たせないファイル、無効または逆転した時刻、過去の終了、タイミングの指定がまったくない、タイムゾーンまたはデフォルトプレイリストのないスクリーン、同じ優先度でスクリーン上に同時に有効な2つの行、スクリーンが保持できる数(32)を超えるレベル、または組織がすべてのプロジェクトを合わせて保持できる数(100、共有レベルはそれぞれ1件に数えられます)を超えるキャンペーン。

コンテンツ、時刻、優先度、名前が一致する行は1つのレベルになります。1つのスクリーンはそのスクリーン自身のスケジュールのエントリになり、複数のスクリーン、フォルダー、タグは1つの共有レベル(キャンペーン)になり、スクリーン独自のレベルより優先されます。

応答には、確定が各レベルに行う処理(create、update、unchanged)とともにレベルが一覧表示されます。さらに、同じインポートの以前の実行で作成され、シートにはもうないレベル(removals)、スクリーンのスタックの確定後の状態(calendar)、確定に送信するフィンガープリントが含まれます。シートは JSON の行、CSV、または XLSX で、最大5,000行です。

スクリーンに限定された呼び出し元は利用できません(outside_screen_scope)。スケジュールインポートは Enterprise プランに含まれます。プランにこの機能が含まれていないプロジェクトは feature_not_in_plan(402)で拒否されます。テンプレートはすべてのプランで利用できます。

認証
projectBearer または dashboardSession
リクエスト本文
ScheduleImportRequest
操作ID
previewScheduleImport

パラメーター

名前送信する必須?説明
ScreenRig-Projectヘッダーオプション1リリースの間非推奨。JWTプロジェクトの権限と整合性が必要。Deprecation と Warning ヘッダーを追加。トークン交換なし。
nameクエリオプションインポートの名前。同じ名前で再度インポートすると、そのインポートが作成したレベルが更新されます(既定値は import)。ファイルボディと併せて送信します。
タイムゾーンクエリオプション行に timezone がない場合に、時刻の記述に使われる IANA タイムゾーン。指定がない場合、時刻は各スクリーン自身の時計で読み取られます。
ソースクエリオプションインポートとともに記録されるファイル名。
code_fieldクエリオプションスクリーンコードをこのスクリーンフィールド(例:code または room_id)からのみ読み取ります。指定しない場合、コードは任意のフィールドに一致します。

リクエスト本文フィールド

フィールド説明
name(任意、文字列)インポートを識別します。同じ名前なら、そのインポートが作成したレベルを更新します(既定値は import)。minLength: 1 maxLength: 80
source(任意、文字列)行の取得元のファイル。maxLength: 200
タイムゾーン(任意、文字列)行に timezone がない場合に、時刻の記述に使われる IANA タイムゾーン。
code_field(任意、文字列)スクリーンコードをこのスクリーンフィールドからのみ読み取ります。
fingerprint(任意、文字列)プレビューのフィンガープリント。確定に必須です。
rows(必須、配列)
リクエストテンプレートとレスポンス
シェル・リクエストテンプレート
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'

レスポンス

ステータス意味本文とヘッダー
200プレビュー。いずれかの行にエラーがある間、valid は false です。ScheduleImportPreview (application/json)
402feature_not_in_plan — スケジュールインポートは Enterprise プランに含まれます。問題には、機能、アカウントのプラン、required_plan が示されます。問題 (application/problem+json)
403

outside_screen_scope - 呼び出し元がスクリーンに限定されており、リクエストが指定する、または及ぶスクリーン、スクリーンフォルダー、セレクター、対象がその範囲外です(docs/screen-scope.md)。スコープ外のIDと存在しないIDには同じ応答が返されます。errors[0].screen_scope には呼び出し元のスコープが含まれ、書き込みは絞り込まれることなく全体が拒否されます。

問題 (application/problem+json)
デフォルト

安定した RFC 9457 問題応答。421 server_draining は Retry-After 1秒、500 not_ready または dependency_unavailable は 5秒、500 manifest_degraded は 60秒を持ちます。ハンドラーがより具体的な値を設定していない場合。

問題 (application/problem+json)
POST/api/schedule/imports

スケジュールインポートの確定

プレビュー済みのインポートを確定します。同じシートと、そのプレビューが返したフィンガープリントを送信します。すべてのレベルが作成、更新、削除され、スクリーンのスケジュールと共有レベルが1つのトランザクションで書き込まれ、インポートイベント schedule.imported が追記されます。すべての行が適用されるか、まったく適用されないかのどちらかです。

シートのファイルに必要な1ファイルのプレイリストが最初に作成されます(どのスクリーンにも変更はありません)。行にエラーのあるシートは拒否されます(schedule_import_invalid)。プレビュー後にプロジェクトが変更された場合や、行の読み取り結果が変わった場合も拒否され(schedule_import_stale)、クライアントはもう一度プレビューします。

同じ名前で同じシートを再度インポートしても何も変わりません。変更された行はそのレベルを更新し、削除された行はそのレベルを削除します。ダッシュボードで承認できるユーザーと、エージェント用の書き込みアクセスを持つ認証情報が必要です。

確保済みキャンペーンを更新または削除するコミットは、承認できる人がコミットしない限り、reserved_item(403)を返し、何も書き込みません。

保護されたスクリーンに及ぶコミットは、インポートにレベルがなくても、保護されたスクリーンのインポートエントリを削除する場合や、対象が保護されたスクリーンに及ぶインポートキャンペーンを削除する場合に、protected_target で全体が拒否されます。

保護されたスクリーンフォルダーのあるプロジェクトでは、プレビューがシートではなくサービスで失敗するコミットは dependency_unavailable で応答し、何も書き込みません。少し待って同じリクエストをもう一度送信してください。シート、キャンペーン、スクリーンの検証エラーは、コミット時と同じように応答されます(invalid_request と上記のその他の問題)。

スクリーンに限定された呼び出し元は利用できません。スケジュールインポートは Enterprise プランに含まれます。プランにこの機能が含まれていないプロジェクトは feature_not_in_plan(402)で拒否されます。テンプレートはすべてのプランで利用できます。

認証
projectBearer または dashboardSession
リクエスト本文
ScheduleImportRequest
操作ID
commitScheduleImport

パラメーター

名前送信する必須?説明
ScreenRig-Projectヘッダーオプション1リリースの間非推奨。JWTプロジェクトの権限と整合性が必要。Deprecation と Warning ヘッダーを追加。トークン交換なし。
Idempotency-Keyヘッダーオプション新規操作のために省略します。再試行の重複排除にキーを供給し再利用してください。CLIがキーを自動管理します。
fingerprintクエリオプションプレビューのフィンガープリント(CSV または XLSX ボディ用)。JSON ボディではメンバーとして含めます。
nameクエリオプションインポートの名前。同じ名前で再度インポートすると、そのインポートが作成したレベルが更新されます(既定値は import)。ファイルボディと併せて送信します。
タイムゾーンクエリオプション行に timezone がない場合に、時刻の記述に使われる IANA タイムゾーン。指定がない場合、時刻は各スクリーン自身の時計で読み取られます。
ソースクエリオプションインポートとともに記録されるファイル名。
code_fieldクエリオプションスクリーンコードをこのスクリーンフィールド(例:code または room_id)からのみ読み取ります。指定しない場合、コードは任意のフィールドに一致します。

リクエスト本文フィールド

フィールド説明
name(任意、文字列)インポートを識別します。同じ名前なら、そのインポートが作成したレベルを更新します(既定値は import)。minLength: 1 maxLength: 80
source(任意、文字列)行の取得元のファイル。maxLength: 200
タイムゾーン(任意、文字列)行に timezone がない場合に、時刻の記述に使われる IANA タイムゾーン。
code_field(任意、文字列)スクリーンコードをこのスクリーンフィールドからのみ読み取ります。
fingerprint(任意、文字列)プレビューのフィンガープリント。確定に必須です。
rows(必須、配列)
リクエストテンプレートとレスポンス
シェル・リクエストテンプレート
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'

レスポンス

ステータス意味本文とヘッダー
200確定が適用した内容。ScheduleImportCommitted (application/json)
402feature_not_in_plan — スケジュールインポートは Enterprise プランに含まれます。問題には、機能、アカウントのプラン、required_plan が示されます。問題 (application/problem+json)
403

ScreenScopePlays の場合と同じ outside_screen_scope または approver_required。または reserved_item - 確保済みキャンペーンを変更、一時停止、削除、確保解除できるのは、レビューを承認できる人だけで、エージェントやサービスクライアントにはできません(docs/screen-scope.md)。

問題 (application/problem+json)
409

protected_target - 変更が保護されたスクリーンフォルダー内のスクリーンに及び、レビューの形式がありません(docs/screen-scope.md)。レビューを通じてフォルダーの保護を解除し、変更を行い、フォルダーを再度保護してください。

問題 (application/problem+json)
500dependency_unavailable - 保護されたスクリーンフォルダーのチェックを実行できませんでした。少し待ってから同じリクエストをもう一度送信してください。問題 (application/problem+json)
デフォルト

安定した RFC 9457 問題応答。421 server_draining は Retry-After 1秒、500 not_ready または dependency_unavailable は 5秒、500 manifest_degraded は 60秒を持ちます。ハンドラーがより具体的な値を設定していない場合。

問題 (application/problem+json)