bigbluebutton / bigbluebutton-html-plugin-sdk

BigBlueButton Plugin SDK
GNU Lesser General Public License v3.0
7 stars 5 forks source link

Create new plugin method #50

Closed TiagoJacobs closed 9 months ago

TiagoJacobs commented 9 months ago

Create a new plugin method that will receive the parameters and return the join URL.

    async getJoinUrl(parameters):String

Example call:

pluginApi.getJoinUrl({
  "enforceLayout": "camerasOnly",
  "userdata-bbb_display_notifications": false,
  "userdata-bbb_auto_share_webcam": true,
  "userdata-bbb_listen_only_mode": false,
  "userdata-bbb_skip_check_audio": true,
  "userdata-bbb_skip_video_preview": true,
  "userdata-bbb_preferred_camera_profile": "high",
  "userdata-bbb_hide_nav_bar": true,
  "userdata-bbb_hide_actions_bar": true,
  "userdata-bbb_self_view_disable": true
})

Expected return:

https://bbb30.bbb.imdt.dev/bigbluebutton/api/join?&redirect=true&userdata-bbb_display_notifications=false&role=viewer&userdata-bbb_listen_only_mode=false&fullName=maria&userdata-bbb_skip_video_preview=true&meetingID=random-4069079&enforceLayout=camerasOnly&userID=w_xemgee5smnqo&userdata-bbb_self_view_disable=true&userdata-bbb_preferred_camera_profile=high&userdata-bbb_hide_nav_bar=true&userdata-bbb_auto_share_webcam=true&userdata-bbb_skip_check_audio=true&userdata-bbb_hide_actions_bar=true&checksum=1ac10ac87d3f5ad215232cf297b3357372c9febb

Internals:

What this method needs to do is to perform the following HTTP request:

async getJoinUrl(parameters):String {
    const urlParameters = objectToUrlParameters(parameters)
    const url = `${document.location.origin}/bigbluebutton/api/getJoinUrl?accessToken=${getAccessToken()}&${queryParameters}`;
    const response = await fetch ( url );
    return response.x.y.url; // pseudo-code
}
TiagoJacobs commented 9 months ago

For reference, this is the output of getJoinUrl BBB api call: image

Called URL: https://bbb30.bbb.imdt.dev/bigbluebutton/api/getJoinUrl?sessionToken=tn4dkhlqnrs2kikh&fullName=maria&role=viewer&enforceLayout=camerasOnly&userdata-bbb_display_notifications=false&userdata-bbb_auto_share_webcam=true&userdata-bbb_listen_only_mode=false&userdata-bbb_skip_check_audio=true&userdata-bbb_skip_video_preview=true&userdata-bbb_preferred_camera_profile=high&userdata-bbb_hide_nav_bar=true&userdata-bbb_hide_actions_bar=true&userdata-bbb_self_view_disable=true