![]() |
Summary | Discourse Zoom empowers Discourse administrators and users with a paid Zoom subscription to schedule, manage, and participate in Zoom webinars directly from their Discourse platform. |
![]() |
Repository Link | https://github.com/discourse/discourse-zoom |
![]() |
Install Guide | How to install plugins in Discourse |
Overview
This plugin integrates Zoom webinars into a Discourse instance. Zoom webinars can be associated with topics, Discourse users can register for webinars and join them when they start.
Due to Zoom deprecating JWT authentication, as of August 1st 2023, the plugin’s authentication mechanism has changed from JWT (now deprecated, Zoom will remove on September 1st) to Server-to-Server OAuth. Existing users of the plugin need to update their settings.
Features
- When a Zoom webinar starts, the “Register” button automatically switches to “Join”, and clicking it launches the webinar using the Zoom SDK in a dedicated endpoint inside your Discourse community
- Automatically reminds webinar registrants N minutes before the event (N is configurable in the plugin settings, by default reminders are turned off)
- Administrators can add panelists to a webinar in Discourse
- Administrators can add a link to video recordings of the webinar in Discourse, which is then displayed to users after the event has ended
- Zoom event hosts and panelists are associated with Discourse user accounts
Usage
To use the Discourse Zoom plugin, you first need to install it in your Discourse instance and configure it with your Zoom Server-to-Server OAuth app credentials. Once the plugin is set up, you can create a new Zoom webinar by creating a new topic and associating it with the webinar. Users can then register for the webinar directly from the topic.
Installation
Step 1: Create a Server-to-Server OAuth app in the Zoom Marketplace
To get started, you’ll need to create a Server-to-Server OAuth app in the Zoom Marketplace.
Step 2: Install the plugin in your Discourse instance
You can install the plugin in your Discourse instance by following the instructions here.
Step 3: Configure the plugin
Once the plugin is installed, go to your Discourse settings and check the zoom enabled
checkbox. Then, copy and paste the zoom s2s account id
, zoom s2s client id
, and zoom s2s client secret
site settings from your app’s credentials tab.
Step 4: Enable event subscriptions
Under the Feature tab of your Zoom Server-to-Server OAuth app, enable event subscriptions. Under Event Types, load the Webinar tab and check all the events in it. If you can’t see webinar
permissions, check how to enable permissions.
Set the Event notification endpoint URL
to https://YOURSITE.com/zoom/webhooks/webinars.json
.
Click on validate
then click on save
.
Step 5: Create a Meeting SDK App
Under the App Credentials tab in your Meeting SDK App, copy and paste the Client ID/ SDK key
into the zoom sdk key
field, and the Client Secret/SDK secret
into the zoom sdk secret
field.
Next, under the App Credentials, you will find the Redirect URL for OAuth
and the Add Allow List
. Copy and paste the following link https://YOURSITE.com/auth/oauth2_basic/callback
.
Step 6: Activate the SDK App
Go to the SDK Activation tab and in the Add URL
, copy and paste the provided URL in your browser to activate the SDK app. Currently, we don’t use the provided OAuth by the Meeting SDK, but setting it up is required.
Make sure your app is activated. To do this, click on Manage
and check the Status
column.
Limitations
The plugin only works with webinars that do not require registration in Zoom.
Notice about breaking Changes
Due to deprecations in the Zoom API, old instances of the plugin will need to be configured following the steps mentioned in this post.
Hosted by us? This plugin is available on our Enterprise plans.