Feeds
feed 是 screenRIG 获取并缓存的第三方数据,如天气、警报、汇率和头条。feeds get 读取一个 feed 文档,与内置卡片使用相同参数读取的文档相同。命令从不调用第三方提供者。
feeds get#
读取一次订阅。无文档的订阅返回 pending 及其重试时间。
feeds get <family> [--lat DEGREES --lon DEGREES] [--radius-km KM] [--min-magnitude N] [--hours N]
[--basins LIST] [--base CODE] [--symbols IDS] [--currency CODE] [--url URL]...
[--station ID] [--country CODE] [--category drug|food] [--region NAME] [--date YYYY-MM-DD]
[--provider tfl|entur|digitransit] [--stops IDS] [--system ID]
[--public] [--geocode NAME:VALUE]... [--min-severity LEVEL] [--max-severity LEVEL]
[--min-urgency LEVEL] [--min-certainty LEVEL] [--event NAME]... [--exclude-event NAME]...
[--sender NAME]... [--status STATUS]... [--scope SCOPE]... [--language TAG]...
[--area-unknown hide|show]| 参数 | 类型 | 必填 | 默认 | 备注 |
|---|---|---|---|---|
<family> | string | 是 | 无 | weather、airquality、alerts、rates、crypto、earthquakes、cyclones、headlines、cap、tides、launches、drugalerts、respiratory、almanac、outdoorsafety、departures 或 bikeshare。 |
--lat DEGREES | number | 每个家庭 | 无 | 纬度,-90 到 90,与 --lon 配合使用。weather、airquality、alerts、earthquakes、outdoorsafety 和 bikeshare 必填;cyclones、cap、tides 和 almanac 可选。 |
--lon DEGREES | number | 每个家庭 | 无 | 经度,-180 到 180,与 --lat 配合使用。 |
--radius-km KM | number | 否 | 500 用于 earthquakes | earthquakes 半径,或 cyclones 区域,范围 10 到 20000 公里。需要 --lat 和 --lon。 |
--min-magnitude MAGNITUDE | number | 否 | 2.5 | earthquakes:最小震级,0 到 9。 |
--hours HOURS | number | 否 | 24 | earthquakes:窗口小时数,1 到 168。 |
--basins LIST | string | 否 | 所有盆地 | cyclones:以逗号分隔的流域 at,ep,cp,wp。 |
--base CODE | string | 否 | EUR | rates:基础货币。 |
--symbols IDS | string | 是,针对 crypto | 无 | 以逗号分隔的加密货币ID或代码,最多20个。 |
--currency CODE | string | 否 | usd | crypto:报价货币。 |
--station ID | string | 否 | 无 | tides:NOAA 潮汐预测站 ID,由七个字母或数字组成,例如 9414290。省略时,由 --lat 和 --lon 选择 100 公里内最近的站点。 |
--country CODE | string | 每个家庭 | 无 | drugalerts:us、ca 或 gb(必填)。respiratory:us 或 gb(必填)。almanac:列出其公共假日的 ISO 3166-1 国家。 |
--category CATEGORY | string | 否 | drug | drugalerts:drug 或 food。 |
--region NAME | string | 否 | 全国 | respiratory:美国的州、领地或 DC(名称或邮政代码),或英格兰或某个 UKHSA 地区,最多 48 个字符。 |
--date YYYY-MM-DD | string | 否 | 今天前后的日期 | almanac:固定的某一天。 |
--provider PROVIDER | string | 是,针对 departures | 无 | departures:这些站点所属的交通运营商,tfl、entur 或 digitransit。 |
--stops IDS | string | 是,针对 departures | 无 | departures:该运营商的一到四个站点 ID,以逗号分隔,例如 TfL StopPoint ID 940GZZLUOXC、Entur ID NSR:StopPlace:337 和 NSR:Quay:568,或 Digitransit gtfsId HSL:1040129。 |
--system ID | string | 否 | 最近的系统 | bikeshare:共享单车系统 ID,例如 Mobibikes_CA_Vancouver。省略时,使用覆盖 --lat 和 --lon 的最近的已列出系统。 |
--url URL | string | 是,针对 headlines | 无 | headlines:RSS 或 Atom 源 URL。cap:CAP 警报或 ATOM/RSS 索引 URL;最多重复 5 次。 |
--public | boolean | 否 | 开启但无 --url | cap:还读取覆盖 --lat 和 --lon 的公共警报源。需要 --lat 和 --lon。 |
--geocode NAME:VALUE | string | 否 | 无 | cap:该位置的区号,例如 UGC:WAC033。可重复。需要 --lat 和 --lon。 |
--min-severity LEVEL | string | 否 | 无 | cap:仅警报达到或超过 minor,moderate,severe 或 extreme。 |
--max-severity LEVEL | string | 否 | 无 | cap:仅警报达到或低于 minor,moderate,severe 或 extreme。 |
--min-urgency LEVEL | string | 否 | 无 | cap:仅警报至少达到此紧急程度:past,future,expected 或 immediate。 |
--min-certainty LEVEL | string | 否 | 无 | cap:仅警报至少达到此确定性:unlikely,possible,likely 或 observed。 |
--event NAME | string | 否 | 任何事件 | cap:仅此事件;*匹配任意字符序列。可重复。 |
--exclude-event NAME | string | 否 | 无 | cap:排除此事件。可重复。 |
--sender NAME | string | 否 | 任何发送者 | cap:仅来自此发送者的警报。可重复。 |
--status STATUS | string | 否 | Actual | cap:要读取的警报状态:Actual,Exercise,Test 或 System。可重复。 |
--scope SCOPE | string | 否 | Public | cap:要读取的警报范围:Public,Restricted 或 Private。可重复。 |
--language TAG | string | 否 | en 用于 almanac | cap:语言偏好,取第一个存在的语言。可重复。almanac:“历史上的今天”版本,可选 ar、bs、cs、de、en、es、fr、it、pt、ru、sv、tr、uk 或 zh。 |
--area-unknown MODE | string | 否 | hide | cap:仅由该位置缺少的区号通知的警报:hide 或 show。 |
screenrig feeds get weather --lat 49.25 --lon -123
screenrig feeds get rates --base EUR
screenrig feeds get crypto --symbols btc,eth --currency usd
screenrig feeds get earthquakes --lat 49.25 --lon -123 --radius-km 500 --min-magnitude 4 --hours 72
screenrig feeds get cyclones --basins at,ep
screenrig feeds get headlines --url https://example.com/news.xml
screenrig feeds get cap --lat 49.25 --lon -123 --geocode UGC:WAC033 --min-severity moderate --event '*warning'
screenrig feeds get cap --url https://example.com/alerts.atom --url https://example.com/other.xml
screenrig feeds get tides --station 9414290
screenrig feeds get drugalerts --country us --category food
screenrig feeds get respiratory --country us --region California
screenrig feeds get almanac --country CA --date 2026-12-25
screenrig feeds get departures --provider tfl --stops 940GZZLUOXC
screenrig feeds get bikeshare --lat 49.25 --lon -123
screenrig feeds get launchesweather、airquality、alerts、earthquakes、outdoorsafety 和 bikeshare 需要 --lat 和 --lon,二者必须同时给出;earthquakes 还可使用 --radius-km、--min-magnitude 和 --hours,bikeshare 可使用 --system。cyclones 可使用 --basins,同时给出 --lat、--lon 和 --radius-km 时,只返回该地点附近的风暴。rates 可使用 --base,crypto 需要 --symbols 并可使用 --currency,headlines 需要 --url。tides 需要 --station,或用 --lat 和 --lon 取最近的预测站。drugalerts 需要 --country 并可使用 --category,respiratory 需要 --country 并可使用 --region,almanac 可使用 --country、--language、--lat、--lon 和 --date。departures 需要 --provider 和 --stops,launches 不带任何标志。该系列不支持的标志会被拒绝。内置卡片介绍每个系列的数据。
cap 读取匹配地点的 CAP 警报。需要 --url(可重复,最多 5 个 CAP 警报或 ATOM/RSS 索引 URL)或 --lat 和 --lon,读取覆盖该位置的公共订阅;--public 将这些公共订阅添加到 --url 源。过滤标志与 triggers create --pull 对象的成员相对应。
缓存文档以 200 回答,带 fetchedAt 和 attribution:在数据展示处显示归属。无文档时,信封报告状态 pending、retry_after_seconds 和 retry_at,退出码 0;CLI 不循环,需在 retry_at 后重试命令。组织每天最多注册 50 个新 feed 键,超过后 rate_limited 适用。卡片从静态参数派生 feed 键;不要自行写入 feed 或 feed: 键。
数据源
数据源按计划读取外部地址,并把结果写入一张卡片的数据,这样无需任何人重新发布,卡片就能保持最新,文档变化时屏幕会重新获取。类型有 ics、sheets、csv、json、microsoft365、google_calendar、square、shopify、toast 和 momentus。一个数据源写入一张卡片,一个组织跨其所有项目最多有 200 个。失败的同步绝不写入:卡片保留其最后一份正常文档,数据源的状态会显示错误。各类型的设置、状态码和隐私规则见数据源。
预设是为某个服务(例如 Slack 频道、招聘看板或构建看板)准备好的、经过测试的 json 数据源:source presets 列出预设,source presets NAME 显示预设的字段和密钥,source create --preset NAME 创建数据源。
请以 --secret NAME=@FILE 的形式提供每项凭据,或用 NAME=- 从标准输入读取,这样它就不会留在您的 shell 历史和进程列表中。密钥以加密方式存储,只以掩码提示的形式返回。密钥名称是:ics 用 calendar_url.KEY(每个日历一个),需要密钥的 csv 或 json 地址用 token(password、client_secret、header.NAME 和 query.NAME 用于其他登录方式,见请求、登录和分页),microsoft365 和 toast 用 client_secret,google_calendar 用 service_account_key,square 和 shopify 用 access_token,momentus 用 api_key 和 api_secret,已安装在店铺上的 shopify 应用则用 client_secret 加 client_id 设置。
--settings 接受数据源的整个设置对象,形式为 JSON、@FILE 或 -。--set KEY=VALUE 设置一个顶层成员,可重复使用;值能解析为 JSON 时按 JSON 处理(days=14、calendars='[{"key":"lobby"}]'),否则按文本处理(time_zone=America/Vancouver)。两者同时使用时,--set 的成员会替换 --settings 中的同名成员;只用 --set 的 source update 会修改已保存设置中的这些成员。CLI 自己的 --config 选项指的是它的凭据文件,与数据源无关。
source list#
列出项目的数据源,最新的在前,并显示其状态。
source list [--after CURSOR]| 参数 | 类型 | 必填 | 默认 | 备注 |
|---|---|---|---|---|
--after CURSOR | string | 否 | 第一页 | 上一页的 data.next_cursor。 |
screenrig source listsource show#
查看数据源:其设置、屏蔽后的密钥、最近一次运行和最近一次错误。
source show <source_id>| 参数 | 类型 | 必填 | 默认 | 备注 |
|---|---|---|---|---|
<source_id> | string | 是 | 无 | 数据源(src_…)。 |
screenrig source show src_01EXAMPLESOURCE000000source presets#
列出现成的数据源预设,或显示某个预设及其字段、密钥和获取方式。
source presets [<name>]| 参数 | 类型 | 必填 | 默认 | 备注 |
|---|---|---|---|---|
<name> | string | 否 | 每个预设 | 预设的名称:以连字符连接的小写单词,例如 slack-channel。 |
screenrig source presets
screenrig source presets slack-channel列表显示每个预设的标题、它所填充的卡片类型(第一个是它专为之制作的类型)以及它的类别。指定名称时会显示要设置的字段(--set NAME=VALUE:带模式和示例的文本、选择项,或接受 JSON 数组的列表)、要输入的密钥(--secret NAME=@FILE)及服务商在何处签发每个密钥、刷新频率、卡片保留最后数据的时长,以及它读取谁的数据、遵循哪些条款。不会创建任何内容。
source create#
创建数据源。它会在几秒内运行,之后按其计划运行。请先创建卡片,并用 source test 预览。
source create (--kind KIND | --preset NAME) --card CARD_ID --name NAME [--settings JSON|@FILE|-] [--set KEY=VALUE]...
[--connection-id ID] [--secret NAME=VALUE]... [--refresh DURATION] [--stale-after DURATION|none] [--disabled]| 参数 | 类型 | 必填 | 默认 | 备注 |
|---|---|---|---|---|
--kind KIND | string | 没有 --preset | 无 | ics、sheets、csv、json、microsoft365、google_calendar、square、shopify、momentus 或 toast。 |
--preset NAME | string | 没有 --kind | 无 | 基于现成的、经过测试的预设创建数据源(source presets 会列出预设):此时 --set 和 --settings 用于给出预设的字段,--secret 用于给出其凭据。不适用于 --kind。 |
--card CARD_ID | string | 是 | 无 | 数据源写入的卡片(crd_…)。一张卡片只有一个数据源;再添加第二个会返回 source_target_taken。 |
--name NAME | string | 是 | 无 | 1 到 80 个字符。 |
--settings SETTINGS | string | 否 | {} | 数据源的完整设置对象,可用 JSON、@FILE,或用 - 从 stdin 读取。使用 --preset 时,为预设的字段。 |
--connection-id ID | string | 否 | 无 | microsoft365 和 google_calendar:通过项目连接(pcn_…、connection list)读取,而不是使用数据源自己的租户、client_id 和密钥。它会设置 connection_id 设置项。不能与 --preset 同时使用。 |
--set KEY=VALUE | string | 否 | 无 | 一个顶层设置:值能解析为 JSON 时按 JSON 处理(days=14、calendars='[{"key":"lobby"}]'),否则按文本处理(time_zone=America/Vancouver)。可重复。使用 --preset 时,为预设的一个字段:按原样写入的文本,除非它是 JSON 数组或对象(列表字段的各项)。 |
--secret NAME=VALUE | string | 否 | 无 | 按名称提供的凭据:NAME=@FILE、NAME=-(最多只有一个选项读取标准输入)或 NAME=VALUE。可重复。使用 --preset 时,为预设的凭据。 |
--refresh DURATION | string | 否 | 因类型而异 | 同步频率,从 30s 到 24h,例如 90s、5m 或 1h30m。默认值和最短间隔由类型决定:ics、sheets、csv 和 json 为 5 分钟和 1 分钟;microsoft365 和 google_calendar 为 2 分钟和 1 分钟;square、shopify 和 toast 为 5 分钟和 2 分钟;momentus 为 1 分钟和 30 秒。预设有自己的设置。 |
--stale-after DURATION | string | 否 | 因类型而异 | 数据源无法刷新时,卡片保留最后一次正常数据的时长,范围 1m 到 7d,且至少为 --refresh 的两倍;none 会保留到下次刷新。之后数据在所有屏幕上过期。momentus 默认为 30m,预设有自己的设置。 |
--disabled | boolean | 否 | 关闭 | 以停止状态创建数据源;在 source update --enable 之前不会获取任何内容。 |
screenrig source create --kind ics --card crd_01EXAMPLECARD000000000 --name "Lobby calendar" --set calendars='[{"key":"lobby"}]' --set time_zone=America/Vancouver --secret calendar_url.lobby=@lobby.url
screenrig source create --kind sheets --card crd_01EXAMPLEMENU0000000000 --name "Cafe menu" --settings @menu-sheet.json
screenrig source create --kind json --card crd_01EXAMPLEKPI00000000000 --name "Daily numbers" --settings @kpi-api.json --secret token=@api.token
screenrig source create --kind square --card crd_01EXAMPLEMENU0000000000 --name "Counter menu" --secret access_token=@square.token
screenrig source create --kind microsoft365 --card crd_01EXAMPLEROOMS0000000000 --name "Meeting rooms" --settings @rooms.json --connection-id pcn_01EXAMPLECONNECTION0000
screenrig source create --preset slack-channel --card crd_01EXAMPLEWALL00000000000 --name "Team wall" --set channel=C0123456789 --secret token=@slack.tokensource update#
更改数据源。除重命名外的更改会重置其失败次数并重新运行。
source update <source_id> [--name NAME] [--card CARD_ID] [--settings JSON|@FILE|-] [--set KEY=VALUE]...
[--connection-id ID] [--secret NAME=VALUE]... [--unset-secret NAME]... [--refresh DURATION]
[--stale-after DURATION|none] [--enable | --disable] [--expect-rev REVISION]| 参数 | 类型 | 必填 | 默认 | 备注 |
|---|---|---|---|---|
<source_id> | string | 是 | 无 | 数据源(src_…)。 |
--name NAME | string | 否 | 未更改 | 重命名数据源。 |
--card CARD_ID | string | 否 | 未更改 | 写入另一张卡片。 |
--settings SETTINGS | string | 否 | 未更改 | 替换整个设置对象:JSON、@FILE,或用 - 从 stdin 读取。对于由预设创建的数据源,则把这些字段合并到其设置中。 |
--connection-id ID | string | 否 | 未更改 | 与 source create 相同。让数据源不再使用自己的凭据,需要 --settings(不带 tenant 和 client_id)以及 --unset-secret client_secret。 |
--set KEY=VALUE | string | 否 | 无 | 更改已保存设置中的一个顶层设置,写法同 source create。可重复。对于由预设创建的数据源,则是预设的一个字段;值 null 会移除可选字段。 |
--secret NAME=VALUE | string | 否 | 无 | 设置或替换一个密钥。可重复。您未发送的密钥保留其值,除非更改使数据源指向该密钥不覆盖的位置(另一个来源、店铺、环境或租户):此时 source_secret_required 会再次要求提供。 |
--unset-secret NAME | string | 否 | 无 | 移除一个密钥。可重复。 |
--refresh DURATION | string | 否 | 未更改 | 30s 到 24h;适用该类型的最短值。 |
--stale-after DURATION | string | 否 | 未更改 | 与 source create 相同;none 会移除该时长。 |
--enable, --disable | boolean | 否 | 未更改 | 恢复或停止计划;卡片保留其最后一份文档。最多指定其中一个。 |
--expect-rev REVISION | integer | 否 | 读取到的修订版本 | 除非数据源处于此修订版本,否则拒绝更改。除非您指定其他版本,--set 会以读取到的修订版本作保护。 |
至少需要一项更改。
screenrig source update src_01EXAMPLESOURCE000000 --set days=14
screenrig source update src_01EXAMPLESOURCE000000 --secret calendar_url.lobby=@new.url --refresh 10m
screenrig source update src_01EXAMPLESOURCE000000 --disable
screenrig source update src_01EXAMPLEPRESET0000000 --set channel=C0123456789 --secret token=@new.tokensource test#
预览数据源,不保存也不写入任何内容:获取地址,按卡片的需要整形响应,并用卡片校验。信封包含文档、valid、卡片拒绝时的路径和原因、警告和计数。传入已保存的 <source_id> 可测试它,其他选项作为覆盖项;或传入 --kind(或 --preset)和 --card 测试未保存的数据源。获取或整形失败会返回 source_test_failed 及原因。csv 或 json 数据源还会以 data.request 报告发出的请求:填好占位符并屏蔽秘密查询参数的地址、所发送请求头的名称、正文开头以及读取的页数。每个组织每分钟最多 30 次预览。
source test [<source_id>] [--kind KIND | --preset NAME] [--card CARD_ID] [--settings JSON|@FILE|-] [--set KEY=VALUE]...
[--connection-id ID] [--secret NAME=VALUE]...| 参数 | 类型 | 必填 | 默认 | 备注 |
|---|---|---|---|---|
<source_id> | string | 否 | 无 | 要测试的已保存数据源。 |
--kind KIND | string | 不使用 <source_id> 或 --preset 时 | 无 | 同 source create。 |
--preset NAME | string | 否 | 无 | 预览由此预设创建的数据源,用 --set 和 --settings 作为其字段,用 --secret 作为其凭据,而不是使用 --kind。不能与 <source_id> 同时使用。 |
--card CARD_ID | string | 没有 <source_id> | 无 | 要填充的卡片。 |
--settings SETTINGS | string | 否 | 已保存的设置 | 类型的设置:JSON、@FILE,或用 - 从标准输入读取。 |
--connection-id ID | string | 否 | 无 | 同 source create。 |
--set KEY=VALUE | string | 否 | 无 | 一个顶层设置,写法同 source create;指定 <source_id> 时,它会覆盖已保存设置中的同名设置。可重复。 |
--secret NAME=VALUE | string | 否 | 已保存的密钥 | 要尝试的凭据。可重复。 |
screenrig source test --kind ics --card crd_01EXAMPLECARD000000000 --set calendars='[{"key":"lobby"}]' --secret calendar_url.lobby=@lobby.url
screenrig source test src_01EXAMPLESOURCE000000
screenrig source test --preset slack-channel --card crd_01EXAMPLEWALL00000000000 --set channel=C0123456789 --secret token=@slack.tokensource refresh#
立即同步数据源并显示结果。它会以内联方式运行最多 60 秒,重置失败次数,并完整读取该地址。失败的同步绝不会更改卡片。计划同步正在运行时会返回 source_busy(退出码 5)。每个数据源每分钟最多 6 次。
source refresh <source_id>| 参数 | 类型 | 必填 | 默认 | 备注 |
|---|---|---|---|---|
<source_id> | string | 是 | 无 | 数据源(src_…)。 |
screenrig source refresh src_01EXAMPLESOURCE000000source rooms#
检查屏幕如何映射到预订系统数据源(momentus)的房间。它读取数据源最后一次成功刷新时的房间和项目的屏幕,不会获取任何内容。它会列出没有任何屏幕显示的房间和区域,以及每个有房间或区域值,或其播放列表读取该数据源房间键或区域键的屏幕,状态为 mapped、missing(播放列表读取该字段而屏幕没有值)或 unknown(值既不是房间也不是区域,并给出可能想指的那个)。使用 screen update scr_ID --field room=ROOM_KEY 修正屏幕。
source rooms <source_id>| 参数 | 类型 | 必填 | 默认 | 备注 |
|---|---|---|---|---|
<source_id> | string | 是 | 无 | 读取预订系统房间的数据源(src_…)。 |
screenrig source rooms src_01EXAMPLESOURCE000000source delete#
删除数据源。卡片保留该数据源最后写入的文档。
source delete <source_id> [--expect-rev REVISION]| 参数 | 类型 | 必填 | 默认 | 备注 |
|---|---|---|---|---|
<source_id> | string | 是 | 无 | 数据源(src_…)。 |
--expect-rev REVISION | integer | 否 | 无 | 除非数据源处于此修订版本,否则拒绝删除。 |
screenrig source delete src_01EXAMPLESOURCE000000连接
连接是项目对 Microsoft 或 Google 已保存的访问权限,用于无人登录时运行的工作。microsoft365 或 google_calendar 数据源(source create --connection-id)、Power BI 连接(bi connection create powerbi --connection-id)和 SharePoint 媒体同步账户(media sync account add microsoft365 --connection-id)都通过连接读取,而不是各自携带租户、客户端 ID 和密钥。连接 ID 以 pcn_ 开头,一个组织在其所有项目中最多有 50 个连接。模式、状态和批准步骤见连接 Microsoft 和 Google。
own_app 模式保存您自己的应用:Microsoft 为 Microsoft Entra 应用注册(--tenant-id、--client-id 和客户端密钥的值),Google 为服务账号的 JSON 密钥。screenrig_app 模式使用 screenRIG 自己的应用,不需要密钥:create 会为完成授权的人打印一次性授权链接(data.consent_url,data.consent_expires_at 到期),这个人是为租户同意的 Microsoft 365 管理员,或授予只读日历访问权限的 Google 账号持有者。只把链接发给那个人,然后用 connection show 读取 status 和 last_error。Power BI 连接只接受 own_app 连接。
用 --secret-file FILE 提供客户端密钥,用 --service-account-key-file FILE 提供 Google 密钥,或用 - 从标准输入读取,绝不作为参数传入。读取需要 Read 访问权限,所有更改都需要 Manage 访问权限。
connection list#
列出此项目的连接,并显示其状态。
connection list无参数。
screenrig connection listconnection show#
查看一个连接:其状态、最近一次错误和最近一次测试。
connection show <id>| 参数 | 类型 | 必填 | 默认 | 备注 |
|---|---|---|---|---|
<id> | string | 是 | 无 | 连接(pcn_…)。 |
screenrig connection show pcn_01EXAMPLECONNECTION0000connection create microsoft#
添加 Microsoft 365 连接:您自己的 Entra 应用,或带授权链接的 screenRIG 应用。
connection create microsoft --mode own_app|screenrig_app [--name NAME]
[--tenant-id ID --client-id ID --secret-file FILE]| 参数 | 类型 | 必填 | 默认 | 备注 |
|---|---|---|---|---|
--mode MODE | string | 是 | 无 | own_app:您自己的 Microsoft Entra 应用注册及其客户端密钥。screenrig_app:screenRIG 的应用,由 Microsoft 365 管理员通过此命令打印的一次性链接授权。 |
--name NAME | string | 否 | Microsoft 365 | 1 到 80 个字符。 |
--tenant-id ID | string | 配合 own_app | 无 | 您的 Microsoft Entra 目录(租户)ID,或其主域名,例如 contoso.onmicrosoft.com。需与 --client-id 和 --secret-file 一起使用。 |
--client-id ID | string | 配合 own_app | 无 | 应用注册的应用程序(客户端)ID。 |
--secret-file FILE | string | 配合 own_app | 无 | 从此文件读取客户端密钥的值,或用 - 从标准输入读取(绝不作为参数传入);文件中只包含该值。 |
screenrig connection create microsoft --mode own_app --tenant-id contoso.onmicrosoft.com --client-id 0b1d2f3a-4c5e-4f60-8a7b-9c0d1e2f3a4b --secret-file secret.txt
screenrig connection create microsoft --mode screenrig_app --name "Contoso rooms"screenrig_app 模式不接受 --tenant-id、--client-id 和 --secret-file 中的任何一个:它会为 Microsoft 365 管理员打印授权链接(data.consent_url),管理员为租户同意 screenRIG 的应用。应用注册会为会议室日历列出 Calendars.Read,为 SharePoint 媒体同步列出 Sites.Selected 或 Files.Read.All;对于 Power BI,则列出租户设置和工作区成员资格,而不是 Graph 权限;connection test 会报告令牌带有哪些权限。没有 screenRIG 应用的服务器会返回 connection_app_not_configured:own_app 模式仍然可用。
connection create google#
添加 Google 连接:您自己的服务账号密钥,或带登录链接的 screenRIG 应用。
connection create google --mode own_app|screenrig_app [--name NAME]
[--service-account-key-file FILE]| 参数 | 类型 | 必填 | 默认 | 备注 |
|---|---|---|---|---|
--mode MODE | string | 是 | 无 | own_app:您自己的服务账号密钥。screenrig_app:screenRIG 的应用,由 Google 账号的持有者通过此命令打印的一次性链接登录并授予只读日历访问权限。 |
--name NAME | string | 否 | Google Calendar | 1 到 80 个字符。 |
--service-account-key-file FILE | string | 配合 own_app | 无 | 从此文件读取服务账号的 JSON 密钥文件,或用 - 从标准输入读取(绝不作为参数传入)。 |
screenrig connection create google --mode own_app --service-account-key-file key.json
screenrig connection create google --mode screenrig_app --name "Venue calendars"在 own_app 模式下,把每个会议室日历共享给服务账号的地址,或为数据源指定 subject(全网域授权)。screenrig_app 模式不需要密钥,并为 Google 账号的持有者打印登录链接(data.consent_url):该账号必须能看到数据源列出的每个会议室日历,并且这样的数据源不能指定 subject。没有 screenRIG 应用的服务器会返回 connection_app_not_configured:own_app 模式仍然可用。
connection update#
重命名连接,或在 own_app 模式下更改其租户、应用或密钥。
connection update <id> [--name NAME] [--tenant-id ID] [--client-id ID]
[--secret-file FILE] [--service-account-key-file FILE] [--expect-rev REVISION]| 参数 | 类型 | 必填 | 默认 | 备注 |
|---|---|---|---|---|
<id> | string | 是 | 无 | 连接(pcn_…)。 |
--name NAME | string | 否 | 未更改 | 重命名连接。 |
--tenant-id ID | string | 否 | 未更改 | Microsoft own_app:目录(租户)ID 或主域名。 |
--client-id ID | string | 否 | 未更改 | Microsoft own_app:应用程序(客户端)ID。 |
--secret-file FILE | string | 否 | 未更改 | Microsoft own_app:从此文件读取客户端密钥的值,或用 - 从标准输入读取;它会替换已存储的密钥。 |
--service-account-key-file FILE | string | 否 | 未更改 | Google own_app:从此文件读取服务账号的 JSON 密钥,或用 - 从标准输入读取;它会替换已存储的密钥。 |
--expect-rev REVISION | integer | 否 | 无 | 除非连接处于此修订版本(revision_conflict,退出码 6),否则拒绝更改。 |
screenrig connection update pcn_01EXAMPLECONNECTION0000 --secret-file new-secret.txt
screenrig connection update pcn_01EXAMPLECONNECTION0000 --name "Contoso rooms" --expect-rev 2至少需要一项更改。更改凭据会让连接回到 ready,清除其上一次错误和上一次测试,并作废为旧凭据签发的所有令牌:请重新测试。screenrig_app 连接只能重命名:connection connect 会生成新的授权链接,以更换授权人。省略的密钥会保留。
connection test#
使用连接登录,并检查其凭据允许的操作。
connection test <id>| 参数 | 类型 | 必填 | 默认 | 备注 |
|---|---|---|---|---|
<id> | string | 是 | 无 | 连接(pcn_…)。 |
screenrig connection test pcn_01EXAMPLECONNECTION0000对于 Microsoft,它报告 credentials(租户的应用令牌)和 permissions(令牌带有 Calendars.Read、Sites.Selected、Files.Read.All、Sites.Read.All 和 Place.Read.All 中的哪些;一个都没有则失败,仅有 Sites.Selected 则为警告,因为每个站点都需要单独授予)。对于 Google,它报告 credentials,并指明日历必须对其可见的账号。被拒绝时,连接会转为 error 并带有 last_error;成功时则回到 ready。该测试不判定日历的共享、邮箱访问策略或站点授权。每个组织每分钟最多 30 次。
connection connect#
为 screenrig_app 连接生成新的一次性授权链接。
connection connect <id>| 参数 | 类型 | 必填 | 默认 | 备注 |
|---|---|---|---|---|
<id> | string | 是 | 无 | 连接(pcn_…)。 |
screenrig connection connect pcn_01EXAMPLECONNECTION0000data.consent_url 是给完成授权的人的链接:Microsoft 365 管理员,或 Google 账号的持有者。它会取代任何之前的链接。正常工作的连接在新的授权完成之前保持不变,因此这也可用于续期已转为 error 的连接(授权被撤回、访问被撤销),或把它改到另一个租户或账号。own_app 模式的连接没有授权步骤。每个组织每分钟最多 20 次。
connection delete#
删除没有任何内容通过它读取的连接。
connection delete <id> [--expect-rev REVISION]| 参数 | 类型 | 必填 | 默认 | 备注 |
|---|---|---|---|---|
<id> | string | 是 | 无 | 连接(pcn_…)。 |
--expect-rev REVISION | integer | 否 | 无 | 除非连接处于此修订版本(revision_conflict,退出码 6),否则拒绝删除。 |
screenrig connection delete pcn_01EXAMPLECONNECTION0000
screenrig connection delete pcn_01EXAMPLECONNECTION0000 --expect-rev 2只要有数据源、Power BI 连接或媒体同步账户通过该连接读取,响应就是 resource_conflict(退出码 5),并指明它们。删除并不会终止服务商那一侧:Microsoft 365 租户会一直保留 screenRIG 的应用,直到其管理员将其移除;Google 账号会一直保留其授权,直到其持有者撤销。