| Краткое содержание | Discourse Zoom предоставляет администраторам и пользователям Discourse с платной подпиской Zoom возможность планировать, управлять и участвовать в вебинарах Zoom непосредственно из платформы Discourse. | |
| Ссылка на репозиторий | https://github.com/discourse/discourse-zoom | |
| Руководство по установке | Как установить плагины в Discourse |
Обзор
Этот плагин интегрирует вебинары Zoom в экземпляр Discourse. Вебинары Zoom можно связать с темами, пользователи Discourse могут регистрироваться на вебинары и присоединяться к ним при их начале.
Из-за отказа Zoom от аутентификации JWT, начиная с 1 августа 2023 года, механизм аутентификации плагина изменился с JWT (теперь устаревший, Zoom удалит его 1 сентября) на OAuth «сервер-сервер». Существующим пользователям плагина необходимо обновить свои настройки.
Функции
- При начале вебинара Zoom кнопка «Зарегистрироваться» автоматически меняется на «Присоединиться», и при нажатии на неё вебинар запускается с использованием SDK Zoom в выделенной точке доступа внутри вашего сообщества Discourse
- Автоматически напоминает зарегистрированным участникам вебинара за N минут до события (N настраивается в параметрах плагина; по умолчанию напоминания отключены)
- Администраторы могут добавлять панелистов к вебинару в Discourse
- Администраторы могут добавить ссылку на видеозапись вебинара в Discourse, которая будет отображаться пользователям после завершения события
- Хозяева и панелисты событий Zoom связываются с учётными записями пользователей Discourse
Использование
Для использования плагина Discourse Zoom сначала необходимо установить его в ваш экземпляр Discourse и настроить с помощью учётных данных приложения OAuth «сервер-сервер» в Zoom. После настройки плагина вы можете создать новый вебинар Zoom, создав новую тему и связав её с вебинаром. Затем пользователи могут зарегистрироваться на вебинар прямо из темы.
Установка
Шаг 1: Установка плагина в ваш экземпляр Discourse
Вы можете установить плагин в ваш экземпляр Discourse, следуя инструкциям здесь.
Шаг 2: Создание приложения OAuth «сервер-сервер» на Zoom Marketplace
Для начала вам нужно создать приложение OAuth «сервер-сервер» на Zoom Marketplace. Это приложение потребуется для выполнения запросов к API Zoom и получения уведомлений о событиях через веб-хуки.
Шаг 3: Настройка плагина
После установки плагина перейдите в настройки вашего сайта Discourse, установите флажок zoom enabled (включить Zoom) и сохраните изменения.
Перейдите на вкладку App Credentials (Учётные данные приложения) на Zoom Marketplace:
Затем скопируйте и вставьте значения в соответствующие настройки сайта на вашем экземпляре Discourse:
zoom s2s account idzoom s2s client idzoom s2s client secret
Шаг 4: Установка секретного токена веб-хука
На вкладке Feature (Функции) вашего приложения OAuth «сервер-сервер» в Zoom скопируйте «Secret Token» (Секретный токен) и добавьте его в настройку сайта zoom webhooks secret token вашего сайта Discourse.
Шаг 5: Включение подписок на события
Оставаясь на вкладке Feature (Функции) вашего приложения OAuth «сервер-сервер» в Zoom, включите «Event Subscriptions» (Подписки на события) и нажмите кнопку Add Event Subscription (Добавить подписку на событие):
Далее установите «Event notification endpoint URL» (URL-адрес конечной точки уведомлений о событиях) в:
https://ВАШ_САЙТ.COM/zoom/webhooks/webinars.json
затем нажмите кнопку + Add Events (Добавить события):
Откройте вкладку Webinar (Вебинар) из списка типов событий и отметьте все перечисленные события. Если вы не видите разрешения на события Webinar, проверьте как включить разрешения.
Под «Event notification endpoint URL», который вы установили ранее, найдите кнопку Validate (Проверить):
Если всё работает правильно, должно отображаться
.
Наконец, нажмите кнопку Save (Сохранить) в нижней части страницы.
Шаг 6: Области доступа (Scopes)
После настройки подписок на события перейдите на вкладку Scopes (Области доступа) и нажмите кнопку Add Scopes (Добавить области доступа). Здесь вы выберете следующие области доступа, либо выполнив поиск по значениям, указанным в таблицах, либо вручную, либо используя частичные значения. Например, вместо поиска webinar:read:list_panelists:admin введите webinar:read: — это сузит список элементов, чтобы их было легче найти.
На вкладке scopes приложения Server to server OAuth нажмите кнопку Add Scopes, и откроется окно:
В поле поиска областей доступа ищите по полному или частичному имени. Чтобы упростить поиск, вы можете скопировать и вставить каждую область доступа из следующих таблиц или найти их на соответствующей вкладке:
Пользователи (Users)
| scope | desc |
|---|---|
| user:read:user:admin | Просмотр пользователя |
| user:read:email:admin | Проверка электронной почты пользователя |
| user:read:list_users:admin | Просмотр пользователей |
Вебинар (Webinar)
| 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 | Добавление зарегистрированного участника в вебинар |
Вебинар (Webinar)
| 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
Zoom внес изменения на своей стороне, мы работаем над обновлением руководства.
Приложение Meeting 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); в поле OAuth Redirect URL введите URL вашего сайта, например, https://ВАШ_САЙТ.com.
Шаг 8: Укажите использование вашего приложения
На вкладке Features (Функции) выберите подвкладку Embed (Встраивание) и включите Meeting SDK.
Ограничения
Плагин работает только с вебинарами, не требующими регистрации в Zoom.
Уведомление о Breaking Changes (Несовместимых изменениях)
Из-за устаревания API Zoom старые экземпляры плагина необходимо настроить в соответствии со шагами, описанными в этом сообщении.
Размещено нами? Этот плагин доступен в наших корпоративных тарифах.
















