Discourse Zoom

:discourse2: 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.
:hammer_and_wrench: Repository Link https://github.com/discourse/discourse-zoom
:open_book: 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.

:warning: 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.

:discourse2: Hosted by us? This plugin is available on our Enterprise plans.

63 Likes