Discourse Zoom

:discourse2: Краткое описание Discourse Zoom предоставляет администраторам и пользователям Discourse с платной подпиской Zoom возможность планировать, управлять и участвовать в вебинарах Zoom непосредственно из платформы Discourse.
:hammer_and_wrench: Ссылка на репозиторий https://github.com/discourse/discourse-zoom
:open_book: Руководство по установке Как установить плагины в Discourse

Обзор

Этот плагин интегрирует вебинары Zoom в экземпляр Discourse. Вебинары Zoom могут быть связаны с темами, пользователи Discourse могут регистрироваться на вебинары и присоединяться к ним, когда они начинаются.

:warning: В связи с тем, что Zoom прекращает поддержку аутентификации JWT, начиная с 1 августа 2023 года механизм аутентификации плагина изменился с JWT (теперь устаревшего, Zoom удалит его 1 сентября) на Server-to-Server OAuth. Существующим пользователям плагина необходимо обновить свои настройки.

Возможности

  • Когда начинается вебинар Zoom, кнопка «Регистрация» автоматически переключается на «Присоединиться», и при нажатии на неё вебинар запускается с использованием Zoom SDK на выделенной конечной точке внутри вашего сообщества Discourse
  • Автоматически напоминает зарегистрированным участникам вебинара за N минут до начала события (N настраивается в параметрах плагина, по умолчанию напоминания отключены)
  • Администраторы могут добавлять панелей к вебинару в Discourse
  • Администраторы могут добавить ссылку на видеозаписи вебинара в Discourse, которая затем отображается пользователям после завершения события
  • Ведущие и панелей вебинаров Zoom связаны с учетными записями пользователей Discourse

Использование

Чтобы использовать плагин Discourse Zoom, сначала необходимо установить его в вашем экземпляре Discourse и настроить с учетными данными вашего приложения Zoom Server-to-Server OAuth. После настройки плагина вы можете создать новый вебинар Zoom, создав новую тему и связав её с вебинаром. Затем пользователи могут зарегистрироваться на вебинар непосредственно из темы.

Установка

Шаг 1: Установка плагина в ваш экземпляр Discourse

Вы можете установить плагин в ваш экземпляр Discourse, следуя инструкциям здесь.

Шаг 2: Создание приложения Server-to-Server OAuth в Zoom Marketplace


Чтобы начать, вам нужно создать приложение Server-to-Server OAuth в Zoom Marketplace. Это приложение потребуется для отправки запросов к API Zoom и получения уведомлений о событиях через Webhooks.


Шаг 3: Настройка плагина

После установки плагина перейдите к настройкам вашего сайта Discourse и установите флажок zoom enabled, затем сохраните.

В Zoom Marketplace перейдите на вкладку App Credentials:

Затем скопируйте и вставьте значения в соответствующие настройки сайта в вашем экземпляре Discourse:

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

Шаг 4: Установите секретный токен webhook

На вкладке Feature вашего приложения Zoom Server-to-Server OAuth скопируйте «Secret Token» и добавьте его в настройку сайта zoom webhooks secret token вашего сайта Discourse.

Шаг 5: Включите подписки на события

Оставаясь на вкладке Feature вашего приложения Zoom Server-to-Server OAuth, включите «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

После того как вы настроили подписки на события, перейдите на вкладку Scopes и нажмите кнопку Add Scopes. Здесь вы выберете следующие области действия, либо выполнив поиск по указанным в таблицах значениям, либо вручную, либо используя частичные значения, например, вместо поиска webinar:read:list_panelists:admin ищите webinar:read:. Это сузит отображаемые элементы, чтобы было легче найти нужные.

В приложении Server to server OAuth на вкладке scopes нажмите кнопку Add Scopes, и появится окно:

В поле поиска scopes ищите по полному или частичному имени. Для удобства вы можете скопировать и вставить каждое из следующих scopes в соответствующие таблицы или найти их на соответствующих вкладках:

Users

scope desc
user:read:user:admin View a user
user:read:email:admin Verify a user’s email
user:read:list_users:admin View users

Webinar

scope desc
webinar:read:list_panelists:admin View a webinar’s panelists
webinar:read:list_absentees:admin View a past webinar’s absentees
webinar:read:webinar:admin View a webinar
webinar:read:registrant:admin View a webinar’s registrant
webinar:read:list_registrants:admin View a webinar’s registrants
webinar:write:batch_registrants:admin Add registrants to a webinar
webinar:delete:webinar:admin Delete a webinar
webinar:write:panelist Add panelists to a webinar
webinar:delete:registrant Remove a webinar’s registrant
webinar:write:webinar Create a webinar for a user
webinar:update:status Update a webinar’s status
webinar:delete:panelist Remove a webinar’s panelist
webinar:update:webinar Update a webinar
webinar:write:registrant Add a registrant to a webinar

Webinar

scope desc
webinar:read:list_panelists:admin View a webinar’s panelists
webinar:read:list_absentees:admin View a past webinar’s absentees
webinar:read:webinar:admin View a webinar
webinar:read:registrant:admin View a webinar’s registrant
webinar:read:list_registrants:admin View a webinar’s registrants
webinar:write:batch_registrants:admin Add registrants to a webinar
webinar:delete:webinar:admin Delete a webinar
webinar:write:panelist Add panelists to a webinar
webinar:delete:registrant Remove a webinar’s registrant
webinar:write:webinar Create a webinar for a user
webinar:update:status Update a webinar’s status
webinar:delete:panelist Remove a webinar’s panelist
webinar:update:webinar Update a webinar
webinar:write:registrant Add a registrant to a webinar

Шаг 7: Создание приложения Meeting SDK

:warning: Zoom изменил некоторые вещи на своей стороне, мы работаем над обновлением руководства.


Приложение SDK для встреч аутентифицирует пользователя, чтобы он мог присоединиться к вебинару


Начните с создания General App, и в разделе Select how the app is managed выберите User-managed.

На вкладке Basic Information вашего General App скопируйте и вставьте 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.

Уведомление о критических изменениях

Из-за устаревания в API Zoom старые экземпляры плагина необходимо будет настроить в соответствии с шагами, указанными в этом сообщении.

:discourse2: Размещено нами? Этот плагин доступен в наших планах Enterprise.

63 лайка