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

使用方法

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

安装

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

您可以按照此处说明在 Discourse 实例中安装插件。

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


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


步骤 3:配置插件

安装插件后,进入您的 Discourse 站点设置,勾选 zoom enabled 复选框并保存。

从 Zoom Marketplace 进入 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”(事件通知端点 URL)设置为:

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

然后点击 + Add Events 按钮:

从事件类型列表中打开 Webinar(网络研讨会)选项卡,并勾选所有列出的事件。如果看不到 Webinar 事件权限,请查看如何启用权限

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

如果一切正常,应显示 一个绿色的对勾图标,旁边写着“Validated”

最后,点击页面底部的 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:创建 Meeting SDK 应用

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


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


首先创建一个 General App(通用应用),在 Select how the app is managed(选择应用管理方式)下,选择 User-managed(用户管理)。

在通用应用的 Basic Information(基本信息)选项卡中,将 Client ID/ SDK key 复制并粘贴到 zoom sdk key 字段,将 Client Secret/SDK secret 复制并粘贴到 zoom sdk secret 字段。

向下滚动,您会找到 OAuth Information(OAuth 信息)部分,在 OAuth Redirect URL 中填入您的站点 URL,例如 https://YOURSITE.com

步骤 8:指定应用用途

Features(功能)选项卡下选择 Embed(嵌入)子选项卡,启用 Meeting SDK

限制

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

关于破坏性变更的说明

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

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

63 个赞