尧图精选

Cal.com(cal.diy)应用商店集成指南:Riverside 在线录音室(riverside_video)配置与安装原理

🕒 发布时间:2026/9/10 15:05:14 📁 来源:尧图网络
Cal.comcal.diy应用商店集成指南Riverside 在线录音室riverside_video配置与安装原理【免费下载链接】cal.diyScheduling infrastructure for absolutely everyone.项目地址: https://gitcode.com/GitHub_Trending/ca/cal.diy导读本文以 packages/app-store/riverside/DESCRIPTION.md 为骨架深入剖析 Cal.com本仓库 cal.diy应用商店中 Riverside 在线录音室应用的完整集成方式从应用元数据config.json、浏览器端安装 API到静态会议链接static link在校验、存储与回填层面的底层机制。读完本文你将掌握一个 conferencing视频会议类应用接入 Cal.com 应用商店的完整技术路径并能在自建 Cal.com 部署中正确安装、配置与使用 Riverside 作为事件类型Event Type的会议地点。Riverside 应用是什么DESCRIPTION.md 是 Cal.com 应用商店App Store生态中用于描述每个应用的一线元数据文档。它对 Riverside 的官方定位是Your online recording studio. The easiest way to record podcasts and videos in studio quality from anywhere. All from the browser.翻译过来即在线录音室——一种从浏览器即可完成、随时随地以录音室画质录制播客与视频的会议应用。这意味着 Riverside 集成在 Cal.com 中扮演的角色是「视频会议/录制地点conferencing location」而不是日历、支付或 CRM 类应用。该描述文件本身还通过 YAML front-matter 声明了一张随应用展示的截图--- items: - riverside1.png --- Your online recording studio. ...其中的riverside1.png对应应用商店中展示的应用截图实际文件位于 packages/app-store/riverside/static/riverside1.png900×485 的横向宣传图用于应用市场卡片展示。应用元数据config.json 全字段解析Riverside 应用的核心配置全部集中在 packages/app-store/riverside/config.json它决定了应用在商店中的展示信息、安装后的行为类型以及地点location的存储方式。逐字段拆解如下字段值含义nameRiverside应用在应用商店中展示的名称slugriverside应用唯一标识用于路由与数据库键。config.json 中注释明确不要随意修改 slug如需变更应使用 CLI 的 edit 命令typeriverside_video应用类型标识也是集成后写入数据库credential.type的值logoicon-dark.svg应用图标实际文件为 packages/app-store/riverside/static/icon-dark.svgurlhttps://cal.com/应用主页链接variantconferencing应用变体决定其在「已安装应用」页面中的分组categories[conferencing]商店分类用于应用市场的筛选与浏览publisherCal.com, Inc.发布方emailhelpcal.com支持邮箱description同 DESCRIPTION.md应用商店展示描述isOAuthfalse非 OAuth 应用无需授权码换取 token 的流程appData.location见下定义该应用作为事件地点时的完整行为其中appData.location是 Conferencing 类应用最关键的元数据appData: { location: { label: Riverside Video, urlRegExp: ^https?:\\/\\/(www\\.)?riverside\\.(fm|com)\\/studio\\/., type: integrations:riverside_video, linkType: static } }label用户在创建事件类型时下拉菜单里看到的选项名「Riverside Video」urlRegExp用户填写 Riverside 链接时的格式校验正则要求链接必须匹配http(s)://(www.)riverside.fm|riverside.com/studio/...形式即只允许官方 Studio 链接type地点类型标识值为integrations:riverside_video是credential.typeriverside_video在事件地点层的映射linkType: static声明这是一个静态链接地点——链接由用户预先生成并粘贴而不是像 Zoom/Google Meet 那样在预订时动态创建会议。安装流程add API 源码级解析Riverside 的安装入口位于 packages/app-store/riverside/api/add.ts它复用了calcom/lib/server/defaultHandler统一处理 HTTP 路由并将 GET 请求委托给 _getAdd.tsimport { defaultHandler } from calcom/lib/server/defaultHandler; export default defaultHandler({ GET: import(./_getAdd), });_getAdd.ts 是安装逻辑的核心完整执行步骤如下会话校验调用checkSession(req)来自 packages/app-store/_utils/auth未登录用户直接拒绝读取应用配置从../config.json取slug riverside与type riverside_video读取returnTo参数支持调用方指定安装成功后跳转地址检查已安装状态checkInstalled(slug, session.user.id)防止重复安装创建默认安装记录createDefaultInstallation({ appType, user, slug, key: {} })向数据库写入一条 credential应用类型为riverside_videokey 为空对象{}因为静态链接应用无需凭据返回跳转地址优先返回returnTo否则回落到getInstalledAppPath({ variant: conferencing, slug: riverside })——即「已安装应用 → conferencing 分组 → Riverside」页面。由于isOAuth: false安装流程完全没有 OAuth 回调与 token 交换环节是一条典型的「静默安装」链路用户点击安装 → 写一条空凭据 → 跳转完成。整个 API 通过 api/index.ts 对外暴露为add处理器。静态链接机制Riverside 地点如何存储与校验linkType: static在 Cal.com 的地点体系中对应 packages/app-store/locations.ts 中定义的DefaultEventLocationType。该类型约定静态链接类地点通过variable: locationLink将用户填写的 URL 直接存到事件类型EventType的locations字段中并在预订时原样使用无需调用任何第三方 API。从 locations.ts 的校验逻辑可以确认当newLocation.linkType static时系统会以urlRegExp校验用户提交的链接是否合法locations.ts 处还体现了 static 与非 static 会议应用在预订流程中的分支差异——只有非 static如 Zoom、Daily 等动态会议才需要在创建预订时即时生成会议链接。因此Riverside 的实际使用模型是用户在浏览器打开 riverside.fm 创建 Studio 会话获得形如https://riverside.fm/studio/xxxx的链接在 Cal.com 事件类型中将地点选为「Riverside Video」并粘贴该链接预订者收到的日程确认中会包含此静态链接双方按约定时间进入同一 Studio 录制。在事件类型中配置 Riverside 地点的实操步骤在自建 Cal.com本仓库部署完成后可按以下步骤启用并使用 Riverside登录后台进入Apps应用商店找到 Riverside或通过/apps/riverside直达安装页点击 Install触发上文分析的addAPI系统写入一条riverside_video类型凭据并跳转到已安装应用页进入某个 Event Type 编辑页在 Location 下拉框中选择Riverside Video在链接输入框粘贴符合正则^https?:\/\/(www\.)?riverside\.(fm|com)\/studio\/.的 Studio 链接务必为riverside.fm或riverside.com域名下的/studio/路径否则会被校验拦截保存后预订流程即自动带上该链接。相关文件索引DESCRIPTION.md应用描述与截图清单本文主体config.json应用元数据与地点配置api/add.ts安装路由入口api/_getAdd.ts安装核心逻辑会话校验、安装记录、跳转locations.ts静态链接地点的类型定义、校验与存储机制packages/app-store/riverside/static/riverside1.png应用宣传图需要留意的是Riverside 应用只负责链接的静态托管与校验不负责创建 Studio 会话实际录制仍须在 riverside.fm 官网完成同时安装该应用依赖仓库已有的应用商店框架见 packages/app-store/apps.server.generated.ts 等生成清单安装前请确保应用注册清单已正确生成。【免费下载链接】cal.diyScheduling infrastructure for absolutely everyone.项目地址: https://gitcode.com/GitHub_Trending/ca/cal.diy创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联 返回资讯列表 →