Step 1–2: instructor connects Zoom. Step 3–4: school admin schedules a Live
session, which auto-creates a real Zoom meeting via the instructor's connected account.
Swagger
Flow: log in as an instructor → Connect Zoom → approve on Zoom's consent
screen → redirected back here.
Env: ZOOM_OAUTH_REDIRECT_URL must exactly match the
"Redirect URL for OAuth" registered on the Zoom Marketplace app, and the callback lives at
/api/zoom/callback (not under /api/v1).
After consent, Zoom redirects to FRONTEND_URL +
ZOOM_CONNECT_SUCCESS_PATH/ZOOM_CONNECT_ERROR_PATH — with
FRONTEND_URL pointed at this server's /test static files (see
below), that lands on a small confirmation page which links back here.
Separate session from the instructor above — session scheduling is school-admin only.
Instructor must already be assigned to the course and have Zoom connected (Step 1–2).
No meetingLink needed — it's auto-generated.