OpenAPI YAMLOpenAPI JSON问题 YAMLAPI 概览
此分组有 13 个操作,由 api/openapi.yaml 生成。可按路径、操作或认证筛选。每个端点都会列出其输入;展开后可查看请求模板和响应代码。模板需要您自己的值和符合架构的请求体。
用你的值替换大写占位符。对于JSON请求,请保存符合request.json模式的请求体。Cookie示例使用经过身份验证会话的本地Cookie存储。
通知:在屏幕状态变化时发送电子邮件和带签名的 Webhook 提醒
列出通知
按从旧到新的顺序列出覆盖该项目的组织通知,涵盖所有渠道(最多 50 个)。status、failing_since、last_success_at 和 last_failure_at 是此项目自己的值。此处绝不会返回 Webhook 的签名密钥。
需要项目权限;仅有报告权限的凭据会被拒绝并返回 403 forbidden,因为响应包含接收方 URL 和收件人。
参数
| 名称 | 发送 | 必需? | 描述 |
|---|---|---|---|
| ScreenRig-Project | header | 可选 | 已弃用一个版本。必须与 JWT 项目授权保持一致;添加弃用和警告头。无令牌交换。 |
请求模板和响应
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/notifications'响应
| 状态 | 含义 | 正文和头部 |
|---|---|---|
| 200 | 项目的通知。 | NotificationList (application/json) |
| 默认 | 稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。 | 问题 (application/problem+json) |
创建通知
创建通知。channel email 发送给 recipients(owner,或项目成员的 user_ids);channel webhook 以签名方式 POST 到 url,url 遵循 webhook URL 规则(公共互联网主机上的 https,端口 443 或 8443,否则 webhook_url_rejected)。conditions 列出其触发的屏幕状态变化;电子邮件通知至少需要一个,webhook 需要 conditions 或 event_types。screen_tags 将 conditions 限定在带有其中任一标签的屏幕;空值表示每个屏幕,或由 audience 按活动受众的规则指定屏幕。min_severity 和 severity 对提醒进行过滤和评级,active_hours 在其窗口之外保留或丢弃提醒。
条件只有持续满 hold_minutes(默认 10)后才会发出通知;若条件在提醒发出后解除,随后会发出一条恢复提醒。该通知仅覆盖此项目;每个组织最多有 50 个通知,系统生成的默认通知不计入(notification_limit_reached)。
Webhook 的签名密钥由服务器生成,仅在本次响应和 rotate-secret 中返回;请妥善保存。以相同的 Idempotency-Key 原样重试,24 小时内会返回同一响应(包括密钥)。提醒从 notification.created 之后的第一个事件开始发送。
参数
| 名称 | 发送 | 必需? | 描述 |
|---|---|---|---|
| ScreenRig-Project | header | 可选 | 已弃用一个版本。必须与 JWT 项目授权保持一致;添加弃用和警告头。无令牌交换。 |
| Idempotency-Key | header | 可选 | 省略以进行新操作。提供并重用密钥以去重重试;CLI 自动管理密钥。 |
请求主体字段
| 字段 | 描述 |
|---|---|
| channel(必填,string) | 允许:"email", "webhook", "slack", "teams", "pagerduty", "telegram" |
| 描述(可选,字符串) | 供人识别的名称。maxLength: 200 |
| conditions(可选,NotificationConditions) | |
| screen_tags(可选,ScreenTags) | 设备组选择器标签,0 到 16 个唯一且精确的标签,每个标签符合媒体标签语法。在 ScreenPatch 中,数组替换整个集合,空数组则清空;重复或格式错误的标签为 invalid_request。更改标签会提升屏幕版本(If-Match 保护),并附加 screen.updated,详情见 details.tags;不会更改清单版本。 标签永远不会出现在运行时清单中,也不会用于授权。 |
| audience (可选, CampaignAudience) | 活动定向的屏幕:all(每条规则都匹配)、any(至少一条匹配)、tag(屏幕带有该标签)、screen_id(该屏幕)或 folder(该屏幕文件夹及其内部每个文件夹中的屏幕,GET /api/screen-folders;该文件夹必须存在)中的恰好一个。 规则最多嵌套 3 层,一个 audience 最多有 500 条规则。{"all": []} 表示项目的每个屏幕;在其他位置,all 和 any 至少列出一条规则。 |
| min_severity(可选,NotificationSeverity) | 提醒的严重级别,由低到高。已开启的提醒具有其条件的严重级别:screen_offline 为 error,其他每个条件为 warning,除非通知的 severity 另有设置。已解决的提醒和测试为 info。允许:"info", "warning", "error" |
| severity(可选,NotificationSeverityOverrides) | 此通知的条件到严重级别的映射,例如 {"not_playing": "error"}。它计入 min_severity,也是 Teams 和 PagerDuty 为该条件显示的严重级别。未列出的条件保持其默认值。在补丁中,空对象与 null 一样,清除所有覆盖。 |
| active_hours(可选,NotificationActiveHours) | 已开启提醒发出的时间:窗口(screenrig.schedule/v1),按 timezone 解读。窗口关闭期间到期的提醒会等到下一次开启(outside hold,默认),若届时条件仍然成立才发出,因此条件先行解除则不发送任何内容,或者被跳过(outside drop;last_error outside_hours)。 已发送的已开启提醒对应的已解决提醒始终发出,无论是否在时段内,测试则忽略时段。crashing 与其他条件一样被保留或丢弃。时段在提醒首次发出时判定;失败的提醒按常规计划重试,不论时段。 添加、更改或移除时段,会立即对为旧时段而保留的提醒重新判定。 |
| reach_drop(可选,NotificationReachDrop) | 活动触达减少多少时发送 reach_dropped 提醒的最小值:screens 是最少失去的屏幕数(默认 1),percent 设置后是活动发布时所触达屏幕的最小占比;减少必须同时满足两者。 较小的减少不会排入提醒,已排队的提醒如果到期时减少已低于该阈值,则会被跳过 (condition_cleared)。仅适用于 reach_dropped 条件;未带该条件的通知返回 invalid_request。 |
| hold_minutes(可选,integer) | 条件需持续多久才会发出通知。crashing 不设等待期。default: 10 minimum: 0 maximum: 1440 |
| recipients(可选,NotificationRecipients) | 仅限电子邮件。owner(提醒发送时该项目的所有者)或项目成员的 user_id;不是成员的 user_id 会返回 invalid_request。每位收件人都会通过其已验证的地址收到电子邮件。已离开项目或没有已验证地址的收件人会被跳过。 |
| url(可选,字符串) | 仅限 Webhook:公共互联网主机上的 https URL,端口 443(默认)或 8443。不得包含 userinfo 或片段。maxLength: 2048 format: "uri" |
| event_types(可选,NotificationEventTypes) | 仅限 Webhook。项目事件发生时也会通过 POST 发送,格式与 Webhook 发送的完全一致:精确类型(如 screen.online),或以 .* 结尾的前缀(如 screen.*)。notification.test 绝不会被分发。 |
| destination(可选,NotificationDestination) | 仅适用于 Slack、Teams、PagerDuty 和 Telegram,对它们必填。凭据须为服务签发的格式:slack 为传入 Webhook URL(hooks.slack.com);teams 为 Workflows Webhook URL(logic.azure.com 或 powerplatform.com;Office 365 连接器 URL 已停用);pagerduty 为 32 位 Events API v2 路由密钥;telegram 为机器人令牌。 其他格式会返回 notification_destination_rejected。它会被加密封存,绝不会返回,读取时只以 destination_hint 的形式出现。 minLength: 1 maxLength: 2048 |
| telegram_chat_id(可选,NotificationTelegramChat) | 仅适用于 Telegram,对其必填。要发布到的聊天:其数字 id(群组或频道为负数)或 @channelname。不是凭据。 pattern: "^(-?[0-9]{1,20}|@[A-Za-z][A-Za-z0-9_]{4,31})$" |
| 启用(可选,布尔值) | 默认:true |
请求模板和响应
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/notifications'响应
| 状态 | 含义 | 正文和头部 |
|---|---|---|
| 201 | 已创建。Webhook 的密钥仅在此处和 rotate-secret 中显示。 | Notification (application/json);响应头:Cache-Control |
| 400 | invalid_request、webhook_url_rejected 或 notification_destination_rejected。 | 问题 (application/problem+json) |
| 402 | feature_not_in_plan — 告警路由(Slack、Teams、PagerDuty 或 Telegram 渠道,或 min_severity、severity、active_hours 或 audience 规则)属于 Plus。使用默认规则的电子邮件和 webhook 通知,以及 loop_stalled、glass_blank 和 glass_frozen 条件,所有套餐都包含。 该问题指明功能、项目的计划和 required_plan。 | 问题 (application/problem+json) |
| 409 | notification_limit_reached、idempotency_mismatch,或在项目不属于任何组织时返回 resource_conflict。 | 问题 (application/problem+json) |
| 默认 | 稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。 | 问题 (application/problem+json) |
获取通知
需要项目权限;仅有报告权限的凭据会被拒绝并返回 403 forbidden,因为响应包含接收方 URL 或收件人。
参数
| 名称 | 发送 | 必需? | 描述 |
|---|---|---|---|
| ScreenRig-Project | header | 可选 | 已弃用一个版本。必须与 JWT 项目授权保持一致;添加弃用和警告头。无令牌交换。 |
| id | 路径 | 必填 |
请求模板和响应
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/notifications/RESOURCE_ID'响应
| 状态 | 含义 | 正文和头部 |
|---|---|---|
| 200 | 单个通知。 | Notification (application/json);响应头:ETag |
| 默认 | 稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。 | 问题 (application/problem+json) |
更新通知
更改 description(空值将其清除)、conditions、screen_tags、audience、min_severity、severity、active_hours(null 清除其中每一项)、hold_minutes、recipients(email)、url 和 event_types(webhook)、destination 和 telegram_chat_id(Slack、Teams、PagerDuty 和 Telegram)、enabled 和 snoozed_until 中的任意项;channel 永不改变。
另一渠道的字段为 invalid_request。新的 url 与创建时一样检查。
对已禁用的通知将 enabled 设为 true,会清除其失败状态,并从记录该变更的事件开始发送;禁用期间产生的内容一概不会发送,禁用之前仍待处理的提醒会以 webhook_disabled 标记为失败。snoozed_until 会使通知在该时刻之前不发送任何内容(最多 30 天之后;null 表示结束暂停);期间到期的提醒会被跳过(snoozed)。
追加 notification.updated。If-Match 保护修订号。此处只能更改仅覆盖此项目的通知;同时还覆盖组织其他项目的通知返回 notification_covers_other_projects,须在组织的“通知”页面更改。
参数
| 名称 | 发送 | 必需? | 描述 |
|---|---|---|---|
| ScreenRig-Project | header | 可选 | 已弃用一个版本。必须与 JWT 项目授权保持一致;添加弃用和警告头。无令牌交换。 |
| id | 路径 | 必填 | |
| If-Match | header | 可选 | 可选正资源修订。省略则写入当前资源;提供的过期修订为 revision_conflict。 |
| Idempotency-Key | header | 可选 | 省略以进行新操作。提供并重用密钥以去重重试;CLI 自动管理密钥。 |
请求主体字段
| 字段 | 描述 |
|---|---|
| 描述(可选,字符串) | 空字符串会清除描述。maxLength:200 |
| conditions(可选,NotificationConditions) | |
| screen_tags(可选,ScreenTags) | 设备组选择器标签,0 到 16 个唯一且精确的标签,每个标签符合媒体标签语法。在 ScreenPatch 中,数组替换整个集合,空数组则清空;重复或格式错误的标签为 invalid_request。更改标签会提升屏幕版本(If-Match 保护),并附加 screen.updated,详情见 details.tags;不会更改清单版本。 标签永远不会出现在运行时清单中,也不会用于授权。 |
| audience(可选,内联) | 与 NotificationWrite 相同;null 将其清除。audience 与 screen_tags 同时存在为 invalid_request,因此从其中一个切换到另一个时,要在同一请求中清除前者。 |
| min_severity(可选,内联) | 与 NotificationWrite 相同;null 将其清除。 |
| severity(可选,内联) | 替换所有覆盖;null 或空对象将其清除。 |
| active_hours(可选,内联) | 替换时段;null 将其清除。 |
| reach_drop(可选,内联) | 替换阈值;null 将其清除,因此任何减少都会发出提醒。在阈值已设置时从 conditions 中移除 reach_dropped 为 invalid_request;请在同一请求中清除阈值。 |
| hold_minutes(可选,integer) | minimum: 0 maximum: 1440 |
| recipients(可选,NotificationRecipients) | 仅限电子邮件。owner(提醒发送时该项目的所有者)或项目成员的 user_id;不是成员的 user_id 会返回 invalid_request。每位收件人都会通过其已验证的地址收到电子邮件。已离开项目或没有已验证地址的收件人会被跳过。 |
| url(可选,字符串) | maxLength:2048 格式:“uri” |
| event_types(可选,NotificationEventTypes) | 仅限 Webhook。项目事件发生时也会通过 POST 发送,格式与 Webhook 发送的完全一致:精确类型(如 screen.online),或以 .* 结尾的前缀(如 screen.*)。notification.test 绝不会被分发。 |
| destination(可选,NotificationDestination) | 仅适用于 Slack、Teams、PagerDuty 和 Telegram,对它们必填。凭据须为服务签发的格式:slack 为传入 Webhook URL(hooks.slack.com);teams 为 Workflows Webhook URL(logic.azure.com 或 powerplatform.com;Office 365 连接器 URL 已停用);pagerduty 为 32 位 Events API v2 路由密钥;telegram 为机器人令牌。 其他格式会返回 notification_destination_rejected。它会被加密封存,绝不会返回,读取时只以 destination_hint 的形式出现。 minLength: 1 maxLength: 2048 |
| telegram_chat_id(可选,NotificationTelegramChat) | 仅适用于 Telegram,对其必填。要发布到的聊天:其数字 id(群组或频道为负数)或 @channelname。不是凭据。 pattern: "^(-?[0-9]{1,20}|@[A-Za-z][A-Za-z0-9_]{4,31})$" |
| 启用(可选,布尔值) | |
| snoozed_until(可选,inline) | 在此时刻之前不发送任何内容,最多可设为 30 天之后;null 表示结束暂停。 |
请求模板和响应
curl --request PATCH --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/notifications/RESOURCE_ID'响应
| 状态 | 含义 | 正文和头部 |
|---|---|---|
| 200 | 更新后的通知。 | Notification (application/json);响应头:ETag |
| 400 | invalid_request、webhook_url_rejected 或 notification_destination_rejected。 | 问题 (application/problem+json) |
| 402 | feature_not_in_plan — 告警路由(除关闭、暂停或描述之外修改 Slack、Teams、PagerDuty 或 Telegram 通知,或设置 min_severity、severity、active_hours 或 audience 规则)属于 Plus。清除规则在所有套餐中均可使用;loop_stalled、glass_blank 和 glass_frozen 条件在所有套餐中均包含。 该问题指明功能、项目的计划和 required_plan。 | 问题 (application/problem+json) |
| 409 | notification_covers_other_projects — 该通知还覆盖组织的其他项目,因此只能在组织的“通知”页面更改。 | 问题 (application/problem+json) |
| 412 | revision_conflict — If-Match 已过期;错误的 current_revision 包含当前版本。 | 问题 (application/problem+json) |
| 默认 | 稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。 | 问题 (application/problem+json) |
删除通知
删除该通知并追加 notification.deleted。其待处理的提醒会以 webhook_deleted 标记为失败;其投递日志不再可访问,并随事件保留期一同过期。此处只能删除仅覆盖此项目的通知(否则返回 notification_covers_other_projects)。
参数
| 名称 | 发送 | 必需? | 描述 |
|---|---|---|---|
| ScreenRig-Project | header | 可选 | 已弃用一个版本。必须与 JWT 项目授权保持一致;添加弃用和警告头。无令牌交换。 |
| id | 路径 | 必填 | |
| If-Match | header | 可选 | 可选正资源修订。省略则写入当前资源;提供的过期修订为 revision_conflict。 |
| Idempotency-Key | header | 可选 | 省略以进行新操作。提供并重用密钥以去重重试;CLI 自动管理密钥。 |
请求模板和响应
curl --request DELETE --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/notifications/RESOURCE_ID'响应
| 状态 | 含义 | 正文和头部 |
|---|---|---|
| 204 | 已删除。 | 无正文;头部:Cache-Control |
| 409 | notification_covers_other_projects — 该通知还覆盖组织的其他项目,因此只能在组织的“通知”页面更改。 | 问题 (application/problem+json) |
| 412 | revision_conflict — If-Match 已过期;错误的 current_revision 包含当前版本。 | 问题 (application/problem+json) |
| 默认 | 稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。 | 问题 (application/problem+json) |
轮换通知密钥
仅限 Webhook 通知(其他任何渠道会返回 invalid_request)。替换签名密钥,并返回通知,新密钥位于 secret 中;旧密钥会立即停止用于签名,而最多有一次已在传输中的尝试仍可能以旧密钥签名送达,因此请短时间内同时接受新旧两个密钥。追加 notification.updated,details.changed 为 [secret]。
携带相同 Idempotency-Key 的精确重试在 24 小时内返回相同的新密钥。
参数
| 名称 | 发送 | 必需? | 描述 |
|---|---|---|---|
| ScreenRig-Project | header | 可选 | 已弃用一个版本。必须与 JWT 项目授权保持一致;添加弃用和警告头。无令牌交换。 |
| id | 路径 | 必填 | |
| If-Match | header | 可选 | 可选正资源修订。省略则写入当前资源;提供的过期修订为 revision_conflict。 |
| Idempotency-Key | header | 可选 | 省略以进行新操作。提供并重用密钥以去重重试;CLI 自动管理密钥。 |
请求模板和响应
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/notifications/RESOURCE_ID/rotate-secret'响应
| 状态 | 含义 | 正文和头部 |
|---|---|---|
| 200 | 通知及其新密钥。 | Notification (application/json);响应头:Cache-Control |
| 400 | invalid_request:该通知不是 Webhook。 | 问题 (application/problem+json) |
| 409 | notification_covers_other_projects — 该通知还覆盖组织的其他项目,因此只能在组织的“通知”页面更改。 | 问题 (application/problem+json) |
| 412 | revision_conflict — If-Match 已过期;错误的 current_revision 包含当前版本。 | 问题 (application/problem+json) |
| 默认 | 稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。 | 问题 (application/problem+json) |
测试通知
追加一个 notification.test 项目事件,并仅为此通知排入一次该事件的投递(其他通知不会收到 notification.test)。
Webhook 会将该事件作为请求体收到;电子邮件通知会向其收件人发送一封测试电子邮件;Slack、Teams 或 Telegram 通知会发布一条测试消息;PagerDuty 通知会触发一个信息事件并立即将其解决。
它对已禁用或已暂停的通知同样有效,仅尝试一次且不重试,并且绝不改变该通知的失败状态。请轮询投递日志查看其结果。
参数
| 名称 | 发送 | 必需? | 描述 |
|---|---|---|---|
| ScreenRig-Project | header | 可选 | 已弃用一个版本。必须与 JWT 项目授权保持一致;添加弃用和警告头。无令牌交换。 |
| id | 路径 | 必填 | |
| Idempotency-Key | header | 可选 | 省略以进行新操作。提供并重用密钥以去重重试;CLI 自动管理密钥。 |
请求模板和响应
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/notifications/RESOURCE_ID/test'响应
| 状态 | 含义 | 正文和头部 |
|---|---|---|
| 202 | 排队的测试投放。 | NotificationDelivery (application/json);响应头:RateLimit-Policy、RateLimit |
| 429 | 稳定的 rate_limited 问题。仅在权威 Retry-After 间隔后重试。固定窗口拒绝还包括适用的 RateLimit-Policy 和 RateLimit 成员;并发和字节预算拒绝省略这些可选披露。 | 问题 (application/problem+json);头部:Retry-After,RateLimit-Policy,RateLimit |
| 默认 | 稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。 | 问题 (application/problem+json) |
列出通知投递记录
该通知的投递日志,按事件从新到旧排列。每个事件一行;对于屏幕提醒,则每个事件的每个条件一行;重试会更新该行,GET .../deliveries/{delivery_id}/attempts 会列出其最近的尝试。无需发送的提醒会被跳过,并附上原因。
记录的保留方式与事件相同(按套餐的事件保留期,且不短于 24 小时的重试窗口)。与之前一样,将 next_cursor 传回即可获取下一页。
参数
| 名称 | 发送 | 必需? | 描述 |
|---|---|---|---|
| ScreenRig-Project | header | 可选 | 已弃用一个版本。必须与 JWT 项目授权保持一致;添加弃用和警告头。无令牌交换。 |
| id | 路径 | 必填 | |
| before | 查询 | 可选 | 上一页投递记录的 next_cursor。结束于同一事件的多条提醒之间的页面,会在其游标中写明最后一条提醒的条件。 |
| 限制 | 查询 | 可选 |
请求模板和响应
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/notifications/RESOURCE_ID/deliveries'响应
| 状态 | 含义 | 正文和头部 |
|---|---|---|
| 200 | 一页投递记录。 | NotificationDeliveryList (application/json) |
| 默认 | 稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。 | 问题 (application/problem+json) |
列出通知投递尝试
单次投递的尝试记录,按最新在前排列,保留最近 20 条,与投递记录一同保留,保留时长也相同。每条记录包含尝试序号、完成时间、接收方的 HTTP 状态(无响应或为电子邮件时为 null)、错误类别(成功时为 null)及其耗时。
不属于此通知的投递,或其他项目的通知,均会返回 not_found。
参数
| 名称 | 发送 | 必需? | 描述 |
|---|---|---|---|
| ScreenRig-Project | header | 可选 | 已弃用一个版本。必须与 JWT 项目授权保持一致;添加弃用和警告头。无令牌交换。 |
| id | 路径 | 必填 | |
| delivery_id | 路径 | 必填 | 某个 webhook 投递的 ID。 |
请求模板和响应
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/notifications/RESOURCE_ID/deliveries/DELIVERY_ID/attempts'响应
| 状态 | 含义 | 正文和头部 |
|---|---|---|
| 200 | 交付的保留尝试。 | NotificationDeliveryAttemptList (application/json) |
| 404 | 稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。 | 问题 (application/problem+json) |
| 默认 | 稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。 | 问题 (application/problem+json) |
重新订阅某人的通知
让已通过邮件中的取消订阅链接停止某个通知邮件的人重新收到邮件(Notification.unsubscribed 列出这些人)。幂等:未被停止的人不会带来任何变化,响应就是该通知当前的样子。
变更会提高修订号,并追加 notification.updated,其详情为 change resubscribed、user_id 和 via api。控制台会话可重新订阅项目中的任何人;智能体凭据需要项目写入能力。本人自行恢复的方式,是其取消订阅链接所返回页面上的 Resubscribe 按钮。
参数
| 名称 | 发送 | 必需? | 描述 |
|---|---|---|---|
| ScreenRig-Project | header | 可选 | 已弃用一个版本。必须与 JWT 项目授权保持一致;添加弃用和警告头。无令牌交换。 |
| id | 路径 | 必填 | |
| user_id | 路径 | 必填 | 通知的 unsubscribed 列表中某人的 user_id。 |
请求模板和响应
curl --request DELETE --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/notifications/RESOURCE_ID/unsubscribed/USER_ID'响应
| 状态 | 含义 | 正文和头部 |
|---|---|---|
| 200 | 该通知,unsubscribed 中不再含有此人。 | Notification (application/json);响应头:ETag |
| 409 | notification_covers_other_projects — 该通知还覆盖组织的其他项目,因此只能在组织的“通知”页面更改。 | 问题 (application/problem+json) |
| 404 | 稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。 | 问题 (application/problem+json) |
| 默认 | 稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。 | 问题 (application/problem+json) |
显示取消订阅通知页面
告警邮件页脚中的链接。它不带会话,也不带 bearer;由 screenRIG 为通知 n 和某人 u 生成的令牌 t 就是全部授权,永不过期,只要它所指的签发密钥版本仍被保留即有效。
响应是一个询问是否对此人停止该通知邮件的页面,不会改变任何内容,因此打开链接的邮件扫描器不会停止任何东西;页面按钮会提交到此路径。已被停止的人看到的页面,其按钮用于重新订阅。
任何不匹配的令牌、通知或人员,以及已被删除或不是电子邮件的通知,都会得到同一个 404 页面。该页面没有脚本,只向此源站提交。每个地址每分钟最多 30 个请求 (rate_limited)。
参数
| 名称 | 发送 | 必需? | 描述 |
|---|---|---|---|
| n | 查询 | 必填 | 链接所属的通知。 |
| u | 查询 | 必填 | 链接所指之人的 user_id。 |
| t | 查询 | 必填 | 链接的令牌。 |
请求模板和响应
curl --request GET 'https://api.screenrig.ai/api/notifications/unsubscribe?n=N&u=U&t=T'响应
| 状态 | 含义 | 正文和头部 |
|---|---|---|
| 200 | 询问是否停止告警的页面。 | 字符串(text/html) |
| 404 | 链接无效;无论原因如何,都是同一个页面。 | 字符串(text/html) |
| 默认 | 稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。 | 问题 (application/problem+json) |
取消订阅通知
对链接所指的人停止某个通知的邮件。查询与 GET 链接相同;不读取请求体,因此邮件服务商的 RFC 8058 一键请求(List-Unsubscribe=One-Click,来自每封告警邮件和测试邮件所带的 List-Unsubscribe 与 List-Unsubscribe-Post 标头)和页面上的按钮都能使用。
只会停止这一个人,且仅限该通知;其他人继续收到邮件,此人仍留在收件人 (recipients) 中。该调用是幂等的。首次调用会提高修订号,并追加 notification.updated,其详情为 change unsubscribed、user_id 和 via email_link。
它返回的页面带有 Resubscribe 按钮 (POST /api/notifications/resubscribe);项目成员可在 Notification.unsubscribed 中看到被停止的人。没有人可发邮件时,通知会以 no_recipients 跳过。任何不匹配的链接都会得到 GET 所返回的 404 页面。每个地址每分钟最多 30 个请求 (rate_limited)。
参数
| 名称 | 发送 | 必需? | 描述 |
|---|---|---|---|
| n | 查询 | 必填 | 链接所属的通知。 |
| u | 查询 | 必填 | 链接所指之人的 user_id。 |
| t | 查询 | 必填 | 链接的令牌。 |
请求模板和响应
curl --request POST 'https://api.screenrig.ai/api/notifications/unsubscribe?n=N&u=U&t=T'响应
| 状态 | 含义 | 正文和头部 |
|---|---|---|
| 200 | 说明告警已停止的页面。 | 字符串(text/html) |
| 404 | 链接无效;无论原因如何,都是同一个页面。 | 字符串(text/html) |
| 默认 | 稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。 | 问题 (application/problem+json) |
重新订阅通知
对链接所指之人撤销 POST /api/notifications/unsubscribe:即其所返回页面的 Resubscribe 按钮。链接、授权和 404 页面都相同;幂等。变更会提高修订号,并追加 notification.updated,其详情为 change resubscribed、user_id 和 via email_link。每个地址每分钟最多 30 个请求 (rate_limited)。
参数
| 名称 | 发送 | 必需? | 描述 |
|---|---|---|---|
| n | 查询 | 必填 | 链接所属的通知。 |
| u | 查询 | 必填 | 链接所指之人的 user_id。 |
| t | 查询 | 必填 | 链接的令牌。 |
请求模板和响应
curl --request POST 'https://api.screenrig.ai/api/notifications/resubscribe?n=N&u=U&t=T'响应
| 状态 | 含义 | 正文和头部 |
|---|---|---|
| 200 | 说明告警已恢复的页面。 | 字符串(text/html) |
| 404 | 链接无效;无论原因如何,都是同一个页面。 | 字符串(text/html) |
| 默认 | 稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。 | 问题 (application/problem+json) |