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일에 제거 예정)에서 서버 간(Server-to-Server) OAuth로 변경되었습니다. 플러그인의 기존 사용자는 설정을 업데이트해야 합니다.

기능

  • Zoom 웹세미나가 시작되면 “등록” 버튼이 자동으로 "참가"로 전환되며, 클릭하면 Discourse 커뮤니티 내 전용 엔드포인트에서 Zoom SDK를 사용하여 웹세미나가 실행됩니다.
  • 이벤트 시작 N분 전에 웹세미나 등록자에게 자동으로 알림을 보냅니다 (N은 플러그인 설정에서 구성할 수 있으며, 기본적으로 알림은 꺼져 있습니다).
  • 관리자는 Discourse에서 웹세미나에 패널리스트(panelist)를 추가할 수 있습니다.
  • 관리자는 Discourse에서 웹세미나의 녹화 영상 링크를 추가할 수 있으며, 이는 이벤트 종료 후 사용자에게 표시됩니다.
  • Zoom 이벤트 호스트와 패널리스트는 Discourse 사용자 계정과 연결됩니다.

사용 방법

Discourse Zoom 플러그인을 사용하려면 먼저 Discourse 인스턴스에 플러그인을 설치하고 Zoom 서버 간 OAuth 앱 자격 증명으로 구성해야 합니다. 플러그인 설정이 완료되면 새 주제를 생성하고 웹세미나와 연결하여 새 Zoom 웹세미나를 만들 수 있습니다. 사용자는 주제에서 직접 웹세미나에 등록할 수 있습니다.

설치

1단계: Discourse 인스턴스에 플러그인 설치

여기의 지침을 따라 Discourse 인스턴스에 플러그인을 설치할 수 있습니다.

2단계: Zoom 마켓플레이스에서 서버 간 OAuth 앱 생성


시작하려면 Zoom 마켓플레이스에서 서버 간 OAuth 앱을 생성해야 합니다. 이 앱은 Zoom API에 요청을 보내고 Webhooks를 통해 이벤트 알림을 수신하는 데 필요합니다.


3단계: 플러그인 구성

플러그인 설치 후 Discourse 사이트 설정으로 이동하여 zoom enabled 체크박스를 확인하고 저장하세요.

Zoom 마켓플레이스에서 App Credentials(앱 자격 증명) 탭으로 이동합니다:

그런 다음 값을 복사하여 Discourse 인스턴스의 해당 사이트 설정에 붙여넣습니다:

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

4단계: 웹훅 시크릿 토큰 설정

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 버튼을 찾습니다:

모든 것이 정상 작동했다면 A checkmark icon with "Validated" in green 이 표시되어야 합니다.

마지막으로 페이지 하단의 Save 버튼을 선택합니다.

6단계: 스코프(Scopes)

이벤트 구독을 설정한 후 Scopes 탭으로 이동하고 Add Scopes 버튼을 클릭합니다. 여기에서 테이블에 제공된 값으로 검색하거나, 부분 값을 사용하여 수동으로 다음 스코프를 선택합니다. 예를 들어 webinar:read:list_panelists:admin 대신 webinar:read:으로 검색하면 표시되는 요소가 줄어 필요 항목을 찾기 쉬워집니다.

서버 간 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단계: 미팅 SDK 앱 생성

:warning: Zoom 측에서 변경 사항이 있어 가이드 업데이트를 진행 중입니다.


SDK 미팅 앱은 사용자가 웹세미나 미팅에 참여할 수 있도록 사용자를 인증합니다.


General App(일반 앱)을 생성하여 시작하고, Select how the app is managed(앱 관리 방식 선택)에서 User-managed(사용자 관리)를 선택합니다.

일반 앱의 Basic Information(기본 정보) 탭에서 Client ID/ SDK keyzoom sdk key 필드에, Client Secret/SDK secretzoom sdk secret 필드에 복사하여 붙여넣습니다.

아래로 스크롤하면 OAuth Information 섹션을 찾을 수 있으며, OAuth Redirect URL에 사이트의 URL을 입력합니다. 예를 들어, https://YOURSITE.com.

8단계: 앱 사용 지정

Features 탭에서 Embed 하위 탭을 선택하고 Meeting SDK를 활성화합니다.

제한 사항

이 플러그인은 Zoom에서 등록이 필요하지 않은 웹세미나에서만 작동합니다.

파괴적 변경 사항에 대한 공지

Zoom API의 비활성화로 인해 플러그인의 이전 인스턴스는 이 게시물에 언급된 단계를 따라 구성해야 합니다.

:discourse2: 우리가 호스팅하고 있나요? 이 플러그인은 Enterprise 플랜에서 사용할 수 있습니다.

63개의 좋아요