Question
People commonly ask on the Zoom Developer Forum:
How can I use the Zoom Meeting SDK headless Linux sample bot to join a meeting that requires registration? Using a registration join URL (with /w/ and tk params) leads to “connecting…disconnecting…meeting ended,” even though the meeting is active. Is there a way for the bot to join registration-required meetings?
Answer
When a meeting requires registration, your bot must join with both: - the meeting ID, and - the registration token (tk), plus a userEmail.
If you only pass a standard join link or omit tk, the SDK will fail to join and immediately disconnect.
What to do:
-
Parse registration join URLs - Registration links are formatted like: https://{org}.zoom.us/w/{meeting_id}?tk={token}&pwd={password} - Ensure your parser handles the /w/ route and extracts:
- meeting_id
- tk (registration token)
- pwd (if present)
- In the headless Linux sample, adding "w" to the route check (e.g., include lastRoute == "w") clears the “Meeting ID cannot be blank” error.
-
Include required parameters in the join request - Pass the meeting ID. - Include the tk token in the join request. - Include userEmail (required when registration is enabled).
-
Linux Meeting SDK parameter note - The Linux Meeting SDK docs don’t explicitly list tk or userEmail for join. - Community workaround: pass tk using the webinarToken field in the join request.
If you follow the above (meeting ID + tk + userEmail), the bot can join registration-required meetings instead of immediately disconnecting.
Zoom Developer Forum Examples
Some examples of this question are: