ZoomMtg.init works but ZoomMtg.join does not

Description
I am using the webSDK. I have created the JWT App, and I am generating the sigature using the App thats deployed to Heroku.

From what I can tell the signature generates successfully - I am currently hardcoding the signature for testing.

I have checked system requirements using:

ZoomMtg.checkSystemRequirements()

This all looks good, and you can see the details of this below.

When I executre my code (below) ZoomMtg.init executes and I get a Success. But nothing appears to happen when I do ZoomMtg.join I dont get any errors, and the screen remains blank. I do not notice any activity in the Network Tab of Chrome Dev Tools.

I noticed on another post that the following was missing from some documentation:

ZoomMtg.preLoadWasm();
ZoomMtg.prepareJssdk();

But, as you can see from my sample code this is included.

Any help much appreciated.

System Requirements / Browser Detail

{"browserInfo":"Chrome/83.0.4103.97","browserName":"Chrome","browserVersion":"83.0.4103.97","features":["viewSharing","screenShare","computerAudio","computerVideo","callIn","callOut","chat","closedCaption","QA"]}

Error
No errors returned

Which version?
WebSDK 1.7.7, I did also try 1.7.8

To Reproduce(If applicable)
See my code sample below.

Screenshots
n/a

Smartphone (please complete the following information):
n/a

My Code
Add any other context about the problem here.

console.log("checkSystemRequirements");
console.log(JSON.stringify(ZoomMtg.checkSystemRequirements()));
ZoomMtg.setZoomJSLib("https://source.zoom.us/1.7.7/lib", "/av");
ZoomMtg.preLoadWasm();
ZoomMtg.prepareJssdk();

const signature = "LU9jcFBQamJUM.....VdMRlFqWT0=";

const meetConfig = {
    apiKey: window.wvZoom.zoom_jwt_api_key,
    meetingNumber: window.wvZoom.id,
    leaveUrl: "https://darragh.server.test/zoom/leave",
    userName: "Darragh",
    userEmail: ".......", // required for webinar
    passWord: ".....", // if required
    role: 1, // 1 for host; 0 for attendee or webinar
    signature,
    error: function (res) {
        console.log("Error");
        console.log(res);
    },
    success: function (res) {
        console.log("Success");
        console.log(res);
    }
};

ZoomMtg.init({
    leaveUrl: meetConfig.leaveUrl,
    isSupportAV: true,
    success: function (success) {
        console.log("Init Success ", success);
        console.dir(meetConfig);
        ZoomMtg.join(meetConfig);
    }
});

Hey @darragh.duffy,

Your code looks good, except for two places (which might be dotted out for the purpose of sharing code publicly).

Can you try setting an empty string for userEmail and passWord (if the meeting does not require a password?

And can you try removing the leaveUrl, and role property from the meetConfig object?

Give that a go and let me know if that fixes the issue.

Thanks,
Tommy

Thanks Tommy -
Correct the dots indicate privacy - in the code its expanded out.
Here is my completed code and this is working:

a few key items for any one else reading this:

  • email is required for Webinars (but not for meetings), ensure that this EMAIL address is NOT the Host Email address, it can only be the attendee.
  • the Role should be 0
  • Removed the LeaveUrl in the meeting config, this is only required for the Meeting Init method.
    /* Set the Library dependency */
    console.log("checkSystemRequirements");
    console.log(JSON.stringify(ZoomMtg.checkSystemRequirements()));
    ZoomMtg.setZoomJSLib(
        `https://source.zoom.us/${window.wvZoom.zoomVersion}/lib`,"/av"
    );
    ZoomMtg.preLoadWasm();
    ZoomMtg.prepareJssdk();

    const meetConfig = {
        apiKey: window.wvZoom.apiKey,
        meetingNumber: window.wvZoom.meetingNumber,
        userName: window.wvZoom.userName,
        userEmail: window.wvZoom.userEmail, // must be the attendee email address
        signature: window.wvZoom.signature,
        passWord: window.wvZoom.password,
        error(res) {
            console.log("Joining meeting Error");
            console.dir(res);
        },
        success() {
            console.log("Success");
        }
    };

    ZoomMtg.init({
        leaveUrl: window.wvZoom.leaveUrl,
        // isSupportAV: true,
        isSupportChat: false, //turn off chat option
        isSupportQA: false, // turn off QA
        isLockBottom: false, // allo the footer "control bar" to automatically hide
        success: function (success) {
            console.log("Init Success ", success);
            console.dir(meetConfig);
            ZoomMtg.join(meetConfig);
        }
    });

Hey @darragh.duffy,

Happy to hear it is working! :slight_smile:

Thanks for sharing the solution that worked for you!

-Tommy