Using the API of BigBlueButton v3.0 I want to create a join link to a meeting for an existing attendee, e.g. so that the user can use that link to join the meeting on another device while still only showing up only once in the attendee list.
According to the API reference for BigBlueButton v3.0 this is exactly what the GET
endpoint getJoinUrl
is for:
The
getJoinUrl
endpoint generates a new/join
URL that can be used to create a new session for an existing user.
But the docs only list four parameters for that endpoint - replaceSession
, sessionName
, enforceLayout
, userdata-*
- none of which can actually be used to specify the existing user/session in the meeting.
In the example request further down though this seems to be done using the parameter sessionToken
:
Example Requests:
/bigbluebutton/api/getJoinUrl?sessionToken=xyn1fbqlrhug1j6z&enforceLayout=PRESENTATION_ONLY&sessionName=Presentation%20session&userdata-bbb_client_title=Presentation%20client
So if this is the right way to get a join link for the existing session how can I get the sessionToken
for an existing attendee required for this request?
I can find no useful hints on this in the documentation and the getMeetingInfo
endpoint - which would make most sense for this - does not return the session token.
The only place I can see a session token returned is in the example response to the join
endpoint:
<response>
<returncode>SUCCESS</returncode>
<messageKey>successfullyJoined</messageKey>
<message>You have joined successfully.</message>
<meeting_id>640ab2bae07bedc4c163f679a746f7ab7fb5d1fa-1531155809613</meeting_id>
<user_id>w_euxnssffnsbs</user_id>
<auth_token>14mm5y3eurjw</auth_token>
<session_token>ai1wqj8wb6s7rnk0</session_token>
<url>.html?sessionToken=ai1wqj8wb6s7rnk0</url>
</response>
I.e. I would have to save the session token externally to be able to generate a new join link after the user joined.
Is this really how it is supposed to work?
Is there no other way to generate a join link for an existing session with only, e.g., the user_id
(which is returned by the getMeetingInfo
endpoint)??
Using the API of BigBlueButton v3.0 I want to create a join link to a meeting for an existing attendee, e.g. so that the user can use that link to join the meeting on another device while still only showing up only once in the attendee list.
According to the API reference for BigBlueButton v3.0 this is exactly what the GET
endpoint getJoinUrl
is for:
The
getJoinUrl
endpoint generates a new/join
URL that can be used to create a new session for an existing user.
But the docs only list four parameters for that endpoint - replaceSession
, sessionName
, enforceLayout
, userdata-*
- none of which can actually be used to specify the existing user/session in the meeting.
In the example request further down though this seems to be done using the parameter sessionToken
:
Example Requests:
https://bbb30.bbb.imdt.dev/bigbluebutton/api/getJoinUrl?sessionToken=xyn1fbqlrhug1j6z&enforceLayout=PRESENTATION_ONLY&sessionName=Presentation%20session&userdata-bbb_client_title=Presentation%20client
So if this is the right way to get a join link for the existing session how can I get the sessionToken
for an existing attendee required for this request?
I can find no useful hints on this in the documentation and the getMeetingInfo
endpoint - which would make most sense for this - does not return the session token.
The only place I can see a session token returned is in the example response to the join
endpoint:
<response>
<returncode>SUCCESS</returncode>
<messageKey>successfullyJoined</messageKey>
<message>You have joined successfully.</message>
<meeting_id>640ab2bae07bedc4c163f679a746f7ab7fb5d1fa-1531155809613</meeting_id>
<user_id>w_euxnssffnsbs</user_id>
<auth_token>14mm5y3eurjw</auth_token>
<session_token>ai1wqj8wb6s7rnk0</session_token>
<url>https://yourserver/client/BigBlueButton.html?sessionToken=ai1wqj8wb6s7rnk0</url>
</response>
I.e. I would have to save the session token externally to be able to generate a new join link after the user joined.
Is this really how it is supposed to work?
Is there no other way to generate a join link for an existing session with only, e.g., the user_id
(which is returned by the getMeetingInfo
endpoint)??
1 Answer
Reset to default 0Digging around a little more in the documentation and code and experimenting a bit I found out the following:
getJoinUrl
seems to be intended to only be used within the frontend (and not server-side/outside the browser) since it only works within the same browser session as the sessionToken
.
When it works it returns a /join
url in the form as the example in the docs:
Example Response:
{ "response": { "returncode": "SUCCESS", "message": "Join URL provided successfully.", "url": "https://bbb30.bbb.imdt.dev/bigbluebutton/api/join?&redirect=true&existingUserID=w_t18rn7uc1wjm&role=MODERATOR&userdata-bbb_client_title=Presentation+client&sessionName=Presentation+session&fullName=teacher%2B1&meetingID=random-7653737&enforceLayout=PRESENTATION_ONLY&checksum=135f230a2339b9485d91a3e87b1a22420ca57e8b" } }
So this is basically just the join
endpoint with the additional undocumented parameter existingUserID
where one can specify the user ID returned by the getMeetingInfo
endpoint (see also the respective code here).
One thing to note though: existingUserID
requires the internal user ID which is only returned by getMeetingInfo
if no userID
was manually specified to the join
endpoint...