OpenAPI YAMLOpenAPI JSON问题 YAMLAPI 概览
此分组有 3 个操作,由 api/openapi.yaml 生成。可按路径、操作或认证筛选。每个端点都会列出其输入;展开后可查看请求模板和响应代码。模板需要您自己的值和符合架构的请求体。
用你的值替换大写占位符。对于JSON请求,请保存符合request.json模式的请求体。Cookie示例使用经过身份验证会话的本地Cookie存储。
排程导入:排程行工作表
获取排程导入模板
返回一张含有排程导入所读列和三个示例行(屏幕代码、屏幕文件夹和标签)的工作表,格式为 CSV;使用 format=xlsx 时为 XLSX 工作簿。
参数
| 名称 | 发送 | 必需? | 描述 |
|---|---|---|---|
| ScreenRig-Project | header | 可选 | 已弃用一个版本。必须与 JWT 项目授权保持一致;添加弃用和警告头。无令牌交换。 |
| 格式 | 查询 | 可选 |
请求模板和响应
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 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。 | 问题 (application/problem+json) |
预览排程导入
对照项目读取一张排程行工作表,并回答提交它会做什么,不写入任何内容。
每行指明目标(按 id、按屏幕字段值如房间代码或按名称指定的屏幕;folder:NAME;tag:NAME;多个目标以 ; 或 | 分隔)、内容(媒体文件名,或 playlist:NAME 或播放列表 id)、开始和结束(只有日期的结束时间在当天结束时关闭),以及可选的 timezone、days (Mon-Fri)、每日时间窗口(daily_start、daily_end)、0 到 100 的 priority、名称和显示编号。
时间按每个屏幕自己的时钟读取;timezone 列可将其从另一个时区转换。
每一行都会被检查,并按列报告其错误:屏幕、文件夹或标签未知或有歧义,文件缺失或有歧义,文件无法铺满屏幕,时间无效或颠倒,结束时间已过,完全没有时间,屏幕没有时区或默认播放列表,同一屏幕上两行以相同优先级同时生效,以及层级数超过屏幕的上限(32),或活动数超过其组织在所有项目中的上限(100;每个共享层级算一个)。
内容、时间、优先级和名称一致的行合并为一个层级:一个屏幕是该屏幕自有排程的一个条目;多个屏幕、一个文件夹或一个标签是一个共享层级(活动),优先于屏幕的自有层级。
应答列出各层级及提交对每个层级的操作(create、update、unchanged)、同一导入的先前运行生成而工作表中已不存在的层级(removals)、屏幕的堆栈在提交后的样子(calendar),以及要发送给提交的指纹。工作表为 JSON 行、CSV 或 XLSX,最多 5,000 行。
限定屏幕范围的调用方无法使用(outside_screen_scope)。排程导入属于 Enterprise 计划;计划不含该功能的项目会被拒绝并返回 feature_not_in_plan(402)。模板在每个计划中都开放。
参数
| 名称 | 发送 | 必需? | 描述 |
|---|---|---|---|
| ScreenRig-Project | header | 可选 | 已弃用一个版本。必须与 JWT 项目授权保持一致;添加弃用和警告头。无令牌交换。 |
| name | 查询 | 可选 | 导入名称;以相同名称再次导入会更新它生成的层级(默认 import)。随文件请求体发送。 |
| 时区 | 查询 | 可选 | 行没有 timezone 时,时间所用的 IANA 时区。未指定时,时间按每个屏幕自己的时钟读取。 |
| 来源 | 查询 | 可选 | 文件名,随导入记录。 |
| code_field | 查询 | 可选 | 只从此屏幕字段读取屏幕代码(例如 code 或 room_id);否则代码匹配任意字段。 |
请求主体字段
| 字段 | 描述 |
|---|---|
| 名称(可选,字符串) | 标识该导入;同一名称会更新它生成的层级(默认 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) |
| 402 | feature_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 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。 | 问题 (application/problem+json) |
提交排程导入
提交已预览的导入:同一张工作表及其预览返回的指纹。每个层级都会被创建、更新或移除,屏幕的排程和共享层级在一个事务中写入,并追加导入事件 schedule.imported:所有行都应用,或都不应用。
工作表的文件所需的单文件播放列表先创建(它们不改变任何屏幕)。行有错误的工作表会被拒绝(schedule_import_invalid);预览之后项目已更改或各行读取结果不同时会被拒绝(schedule_import_stale),客户端再次预览。
以相同名称再次导入同一张工作表不会改变任何内容;更改的行会更新其层级,删除的行会移除其层级。需要能在仪表板中批准的人员,对智能体则需要具有写权限的凭据。
会更新或删除预留活动的提交返回 reserved_item(403)且不写入任何内容,除非由可以审批的人员提交。
涉及受保护屏幕的提交会被整体拒绝,返回 protected_target;即使导入没有 levels,但移除了受保护屏幕的导入条目或删除了受众涉及受保护屏幕的导入活动,也是如此。
在有受保护屏幕文件夹的项目中,如果提交的预览因服务而非工作表失败,则返回 dependency_unavailable 且不写入任何内容:请稍候片刻再次发送同一请求。工作表、活动或屏幕的验证错误按提交时的方式返回(invalid_request 和上面的其他问题)。
限定屏幕范围的调用方无法使用。排程导入属于 Enterprise 计划;计划不含该功能的项目会被拒绝并返回 feature_not_in_plan(402)。模板在每个计划中都开放。
参数
| 名称 | 发送 | 必需? | 描述 |
|---|---|---|---|
| ScreenRig-Project | header | 可选 | 已弃用一个版本。必须与 JWT 项目授权保持一致;添加弃用和警告头。无令牌交换。 |
| Idempotency-Key | header | 可选 | 省略以进行新操作。提供并重用密钥以去重重试;CLI 自动管理密钥。 |
| fingerprint | 查询 | 可选 | 预览的指纹,用于 CSV 或 XLSX 请求体;JSON 请求体以成员携带。 |
| name | 查询 | 可选 | 导入名称;以相同名称再次导入会更新它生成的层级(默认 import)。随文件请求体发送。 |
| 时区 | 查询 | 可选 | 行没有 timezone 时,时间所用的 IANA 时区。未指定时,时间按每个屏幕自己的时钟读取。 |
| 来源 | 查询 | 可选 | 文件名,随导入记录。 |
| code_field | 查询 | 可选 | 只从此屏幕字段读取屏幕代码(例如 code 或 room_id);否则代码匹配任意字段。 |
请求主体字段
| 字段 | 描述 |
|---|---|
| 名称(可选,字符串) | 标识该导入;同一名称会更新它生成的层级(默认 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) |
| 402 | feature_not_in_plan — 排程导入属于 Enterprise 计划;该问题指明功能、账户所在的计划和 required_plan。 | 问题 (application/problem+json) |
| 403 | outside_screen_scope 或 approver_required,同 ScreenScopePlays;或 reserved_item - 预留的活动只能由可以审批审核的人员更改、暂停、删除或取消预留,智能体或服务客户端绝不可以(docs/screen-scope.md)。 | 问题 (application/problem+json) |
| 409 | protected_target - 此更改涉及受保护屏幕文件夹中的屏幕,且没有审核表单(docs/screen-scope.md)。通过审核清除该文件夹的保护,完成更改,再次保护该文件夹。 | 问题 (application/problem+json) |
| 500 | dependency_unavailable - 受保护屏幕文件夹的检查无法运行;请稍候片刻再次发送同一请求。 | 问题 (application/problem+json) |
| 默认 | 稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。 | 问题 (application/problem+json) |