拓冰建站拓冰建站
首页 / 资讯中心 / 正文

Cal.com 集成 Mirotalk 视频会议应用(mirotalk_video)接入指南

Cal.com 集成 Mirotalk 视频会议应用mirotalk_video接入指南【免费下载链接】cal.diyScheduling infrastructure for absolutely everyone.项目地址: https://gitcode.com/GitHub_Trending/ca/cal.diyMirotalk 是一个基于 WebRTC 的免费实时视频会议服务支持 P2P 与 SFU 两种架构。本指南以 Cal.com 开源仓库中的 packages/app-store/mirotalk 应用模块为对象讲解如何在 Cal.com 事件类型中把 Mirotalk 房间链接作为会议地点涵盖应用清单config.json各字段的语义、安装时默认凭证的创建机制、以及 SFU/P2P 两种模式的链接校验规则。读完本文你将掌握该应用的完整接入方式、URL 格式约定与底层安装流程可直接用于自托管 Cal.com 环境的集成排查与二次开发。应用定位与核心能力仓库内 DESCRIPTION.md 用两句话概括了该应用的全部核心价值Copy your room link and start scheduling calls in Mirotalk.Both SFU and P2P are supported.即复制你的房间链接在 Cal.com 的预订流程中直接开始 Mirotalk 通话并且同时支持 SFUSelective Forwarding Unit与 P2P点对点两种会议模式。它属于事件类型地点Event Type Location类型的视频会议应用——用户无需注册 Mirotalk 账号只需粘贴一个房间 URL 即可完成会议地点配置。package.json 中进一步补充了底层协议信息该应用基于免费 WebRTC支持最高 4K / 60fps 的实时视频会议兼容所有浏览器与平台应用自身仅依赖calcom/lib工作区包开发依赖calcom/types模块结构非常轻量。应用清单config.json字段逐项解析config.json 是该应用的声明式配置文件Cal.com 的 App Store 注册机制会读取它来生成应用元数据见下文生成的注册文件小节。各字段含义如下字段值说明nameMirotalk应用展示名称slugmirotalk应用唯一标识文件内注释明确要求不得随意修改 slug如需变更须使用 CLI 的 edit 命令typemirotalk_video应用类型标识与 Credential 表中type字段对应logoicon.svg应用图标位于 static/icon.svgvariantconferencing应用变体分类标记为会议/通话类categories[conferencing]应用目录归属publisher/emailCal.com, Inc./supportcal.com发布方信息isOAuthfalse非 OAuth 授权类应用安装不涉及第三方 OAuth 流程isTemplatefalse非模板应用dirNamemirotalk应用源码目录名__templateevent-type-location-video-static使用的脚手架模板静态链接型事件地点视频应用__createdUsingClitrue由 App Store CLI 创建appData.location地点类型配置appData.location定义了该应用如何作为会议地点接入事件类型appData: { location: { type: integrations:{SLUG}_video, label: {TITLE}, linkType: static, organizerInputPlaceholder: https://p2p.mirotalk.com/join/80085ShinyPhone, urlRegExp: ^(http|https):\\/\\/(p2p|sfu)\\.mirotalk\\.com\\/join\\/[a-zA-Z0-9._-]$ } }typeintegrations:{SLUG}_video中的{SLUG}在运行时替换为mirotalk最终对应integrations:mirotalk_video这一地点类型。在平台类型定义中该值被明确枚举为合法地点类型之一见 locations.output.ts 中的mirotalk-video。linkType: static表示地点链接是静态 URL由组织者预先提供而不是动态生成的会议链接——这是粘贴房间链接这一交互模式的关键。organizerInputPlaceholder组织者在事件类型配置页面输入地点链接时的占位提示示例格式为https://p2p.mirotalk.com/join/80085ShinyPhone即一个 Mirotalk P2P 房间地址。urlRegExp组织者输入 URL 的正则校验规则仅允许以下两种形态的链接通过https://p2p.mirotalk.com/join/房间名P2P 模式https://sfu.mirotalk.com/join/房间名SFU 模式其中房间名允许包含大小写字母、数字、点、下划线与连字符[a-zA-Z0-9._-]协议限定为http或https。这从配置层面印证了 DESCRIPTION.md 中SFU 和 P2P 均支持的声明——两种模式对应不同的域名前缀。description容量与限制description字段写明了产品定位面向小团体的点对点实时视频会议不限时长、不限房间数每个房间支持 5–8 名参与者。这是从官方应用描述继承的事实可作为容量规划参考。安装机制默认凭证的声明式创建Mirotalk 应用的安装入口在 api/add.ts它实现了一个AppDeclarativeHandler声明式应用处理器const handler: AppDeclarativeHandler { appType: appConfig.type, // mirotalk_video variant: appConfig.variant, // conferencing slug: appConfig.slug, // mirotalk supportsMultipleInstalls: false, // 每个用户/团队仅允许安装一次 handlerType: add, createCredential: ({ appType, user, slug, teamId }) createDefaultInstallation({ appType, user: user, slug, key: {}, teamId }), };关键点supportsMultipleInstalls: false同一用户或团队不能重复安装该应用安装前会通过checkInstalled检测若已存在凭证则抛出 422 Already installed 错误见 installation.ts。createCredential调用createDefaultInstallation这是 App Store 的通用默认安装工具实现在 installation.ts直接在 PrismaCredential表中插入一条记录type为应用类型、appId为 slug、key为空对象{}Mirotalk 无需存储任何密钥因为房间链接是公开的静态 URL并按调用方上下文写入userId或teamId。凭证创建失败时会抛出明确错误信息。由于isOAuth: false且key为空Mirotalk 的安装本质上只完成两件事记录一次安装行为、解锁integrations:mirotalk_video这一地点选项。API 入口统一由 api/index.ts 导出add处理器而模块根入口 index.ts 则整体导出api命名空间。接入方式在事件类型中使用 Mirotalk 会议基于以上配置与源码实际接入流程如下在 Cal.com 管理后台的 App Store 中安装Mirotalk无 OAuth 跳转安装即完成凭证创建。新建或编辑一个事件类型在会议地点Location中选择Mirotalk。在输入框中粘贴一个 Mirotalk 房间链接格式必须满足urlRegExphttps://p2p.mirotalk.com/join/房间名P2Phttps://sfu.mirotalk.com/join/房间名SFU预订者完成预约后预订确认信息中即携带该房间链接双方点击即可进入视频会议——无需下载客户端、插件或登录。房间名示例80085ShinyPhoneP2P 占位符、43245BlackFish、96468TallSnake见本应用 static 目录中的官方截图均可按^[a-zA-Z0-9._-]$的字符集自定义。生成的注册文件与代码结构总览应用安装后会被 App Store 的代码生成机制登记到全局注册表中apps.metadata.generated.ts 引入./mirotalk/config.json并在第 178 行以mirotalk: mirotalk_config_json的形式注册到元数据映射中供应用市场列表、图标与详情页渲染使用。同类生成文件还包括 apps.server.generated.ts 与 bookerApps.metadata.generated.ts分别用于服务端应用注册与预订页Booker侧的应用元数据。整个模块的文件结构非常精简便于理解一个静态链接型视频应用的最小实现范式packages/app-store/mirotalk/ ├── api/ │ ├── add.ts # 声明式安装处理器创建默认凭证 │ └── index.ts # API 导出 ├── static/ │ ├── 1.jpeg # SFU 界面截图文档配图 │ ├── 2.jpeg # 品牌宣传页截图文档配图 │ └── icon.svg # 应用图标 ├── DESCRIPTION.md # 应用商店展示文案 ├── config.json # 应用声明配置类型、地点规则、正则 ├── index.ts # 模块入口 └── package.json # calcom/mirotalk 包定义小结Mirotalk 应用是理解 Cal.com 视频会议类集成的最佳入门示例之一config.json中的appData.location定义了静态链接地点的完整行为占位符 正则校验 类型映射api/add.ts展示了基于createDefaultInstallation的免 OAuth 声明式安装范式而urlRegExp同时约束了 P2P 与 SFU 两种官方部署形态的 URL 格式。如果你需要为 Cal.com 接入另一款房间链接式会议服务直接以本模块为模板修改config.json并替换静态资源即可。【免费下载链接】cal.diyScheduling infrastructure for absolutely everyone.项目地址: https://gitcode.com/GitHub_Trending/ca/cal.diy创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门