Discourse Zoom

:discourse2: 摘要 Discourse Zoom 赋予拥有付费 Zoom 订阅的 Discourse 管理员和用户直接从 Discourse 平台安排、管理和参与 Zoom 网络研讨会的功能。
:hammer_and_wrench: 仓库链接 https://github.com/discourse/discourse-zoom
:open_book: 安装指南 如何在 Discourse 中安装插件

概述

此插件将 Zoom 网络研讨会集成到 Discourse 实例中。Zoom 网络研讨会可以与主题关联,Discourse 用户可以注册网络研讨会并在开始时加入。

:warning: 由于 Zoom 弃用 JWT 认证,自 2023 年 8 月 1 日起,插件的认证机制已从 JWT(现已弃用,Zoom 将于 9 月 1 日移除)更改为服务器到服务器 OAuth。现有插件用户需要更新其设置。

功能

  • 当 Zoom 网络研讨会开始时,“注册”按钮会自动切换为“加入”,点击它会在你的 Discourse 社区内的专用端点上使用 Zoom SDK 启动网络研讨会
  • 自动提醒网络研讨会注册者在活动开始前 N 分钟(N 可在插件设置中配置,默认情况下提醒功能关闭)
  • 管理员可以在 Discourse 中向网络研讨会添加嘉宾
  • 管理员可以在 Discourse 中添加网络研讨会视频录像的链接,该链接将在活动结束后显示给用户
  • Zoom 活动主持人和嘉宾与 Discourse 用户账户关联

用法

要使用 Discourse Zoom 插件,首先需要在你的 Discourse 实例中安装它,并使用你的 Zoom 服务器到服务器 OAuth 应用凭据进行配置。一旦插件设置完成,你可以通过创建新主题并将其与网络研讨会关联来创建新的 Zoom 网络研讨会。然后用户可以直接从主题注册网络研讨会。

安装

步骤 1:在 Discourse 实例中安装插件

你可以按照这里的说明将插件安装到你的 Discourse 实例中。

步骤 2:在 Zoom 市场中创建服务器到服务器 OAuth 应用


要开始使用,你需要在 Zoom 市场中创建一个服务器到服务器 OAuth 应用。此应用将用于向 Zoom API 发出请求并通过 Webhooks 接收事件通知


步骤 3:配置插件

安装插件后,转到你的 Discourse 站点设置,勾选 zoom enabled 复选框并保存。

从 Zoom 市场转到 App Credentials 选项卡:

然后将值复制并粘贴到你 Discourse 实例中对应的站点设置:

  • zoom s2s account id
  • zoom s2s client id
  • zoom s2s client secret

步骤 4:设置 webhook 秘密令牌

在你的 Zoom 服务器到服务器 OAuth 应用的 Feature 选项卡上,复制“Secret Token”并将其添加到你的 Discourse 站点的 zoom webhooks secret token 站点设置中。

步骤 5:启用事件订阅

仍在你的 Zoom 服务器到服务器 OAuth 应用的 Feature 选项卡上,启用“Event Subscriptions”并选择 Add Event Subscription 按钮:

接下来,将“Event notification endpoint URL”设置为:

https://YOURSITE.COM/zoom/webhooks/webinars.json

然后选择 + Add Events 按钮:

从事件类型列表中打开 Webinar 选项卡,并选中列出的所有事件。如果你看不到 Webinar 事件权限,请查看如何启用权限

在你之前设置的“Event notification endpoint URL”下,找到 Validate 按钮:

如果一切正常,它应显示 A checkmark icon with "Validated" in green

最后选择页面底部的 Save 按钮

步骤 6:作用域

一旦你设置了事件订阅,请转到 Scopes 选项卡,并点击 Add Scopes 按钮。在这里,你可以通过搜索表中给出的值、手动或使用部分值来选择以下作用域,例如,与其搜索 webinar:read:list_panelists:admin,不如搜索 webinar:read:,这将缩小显示的元素范围,使其更容易找到所需的项目。

在服务器到服务器 OAuth 应用的作用域选项卡下,点击 Add Scopes 按钮,将出现一个窗口:

在搜索作用域中,按全称或部分名称搜索,为了方便起见,你可以将每个作用域复制粘贴到以下表中,或在相应的选项卡下搜索它们:

用户

scope desc
user:read:user:admin 查看用户
user:read:email:admin 验证用户邮箱
user:read:list_users:admin 查看用户列表

网络研讨会

scope desc
webinar:read:list_panelists:admin 查看网络研讨会嘉宾
webinar:read:list_absentees:admin 查看过去网络研讨会的缺席者
webinar:read:webinar:admin 查看网络研讨会
webinar:read:registrant:admin 查看网络研讨会注册者
webinar:read:list_registrants:admin 查看网络研讨会注册者列表
webinar:write:batch_registrants:admin 向网络研讨会添加注册者
webinar:delete:webinar:admin 删除网络研讨会
webinar:write:panelist 向网络研讨会添加嘉宾
webinar:delete:registrant 移除网络研讨会注册者
webinar:write:webinar 为用户创建网络研讨会
webinar:update:status 更新网络研讨会状态
webinar:delete:panelist 移除网络研讨会嘉宾
webinar:update:webinar 更新网络研讨会
webinar:write:registrant 向网络研讨会添加注册者

网络研讨会

scope desc
webinar:read:list_panelists:admin 查看网络研讨会嘉宾
webinar:read:list_absentees:admin 查看过去网络研讨会的缺席者
webinar:read:webinar:admin 查看网络研讨会
webinar:read:registrant:admin 查看网络研讨会注册者
webinar:read:list_registrants:admin 查看网络研讨会注册者列表
webinar:write:batch_registrants:admin 向网络研讨会添加注册者
webinar:delete:webinar:admin 删除网络研讨会
webinar:write:panelist 向网络研讨会添加嘉宾
webinar:delete:registrant 移除网络研讨会注册者
webinar:write:webinar 为用户创建网络研讨会
webinar:update:status 更新网络研讨会状态
webinar:delete:panelist 移除网络研讨会嘉宾
webinar:update:webinar 更新网络研讨会
webinar:write:registrant 向网络研讨会添加注册者

步骤 7:创建会议 SDK 应用

:warning: Zoom 在其方面进行了更改,我们正在努力更新指南。


SDK 会议应用对用户进行身份验证,以便用户可以加入网络研讨会会议


首先创建一个 General App,并在 Select how the app is managed 下选择 User-managed

在 General App 的 Basic Information 选项卡下,将 Client ID/ SDK key 复制并粘贴到 zoom sdk key 字段中,将 Client Secret/SDK secret 粘贴到 zoom sdk secret 字段中。

向下滚动,你将找到 OAuth Information 部分,在 OAuth Redirect URL 中放置你站点的 URL,例如 https://YOURSITE.com

步骤 8:指定应用使用

Features 选项卡下选择 Embed 子选项卡,启用 Meeting SDK

限制

该插件仅适用于不需要在 Zoom 中注册的网络研讨会。

关于破坏性更改的通知

由于 Zoom API 的弃用,旧版本的插件需要按照本文档中提到的步骤进行配置。

:discourse2: 由我们托管?此插件在我们的企业计划中可用。

63 个赞