| 요약 | Discourse Zoom은 유료 Zoom 구독을 가진 Discourse 관리자와 사용자에게 Discourse 플랫폼에서 직접 Zoom 웹세미나를 예약, 관리 및 참여할 수 있는 기능을 제공합니다. | |
| 저장소 링크 | https://github.com/discourse/discourse-zoom | |
| 설치 가이드 | Discourse에서 플러그인 설치 방법 |
개요
이 플러그인은 Zoom 웹세미나를 Discourse 인스턴스에 통합합니다. Zoom 웹세미나는 주제와 연결될 수 있으며, Discourse 사용자는 웹세미나에 등록하고 시작 시 참여할 수 있습니다.
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 idzoom s2s client idzoom 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 버튼을 찾습니다:
모든 것이 정상 작동했다면
이 표시되어야 합니다.
마지막으로 페이지 하단의 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 앱 생성
Zoom 측에서 변경 사항이 있어 가이드 업데이트를 진행 중입니다.
SDK 미팅 앱은 사용자가 웹세미나 미팅에 참여할 수 있도록 사용자를 인증합니다.
General App(일반 앱)을 생성하여 시작하고, Select how the app is managed(앱 관리 방식 선택)에서 User-managed(사용자 관리)를 선택합니다.
일반 앱의 Basic Information(기본 정보) 탭에서 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에서 등록이 필요하지 않은 웹세미나에서만 작동합니다.
파괴적 변경 사항에 대한 공지
Zoom API의 비활성화로 인해 플러그인의 이전 인스턴스는 이 게시물에 언급된 단계를 따라 구성해야 합니다.
우리가 호스팅하고 있나요? 이 플러그인은 Enterprise 플랜에서 사용할 수 있습니다.
















