Web SDK version 1.7.9 is released!

yes. 1.7.8 also work now, we will support 1.7.8 until next enforce upgrade.

2 Likes

Ok, make sure you notify us weeks before the enforcement…

2 Likes

if not, our web app will crash… and it’s not good for our business… thank you.

This iFrame documentation did not change anything.

I’m in same situation as @darragh.duffy and always get this zoom information popup saying i’m using incognito mode when i’m not.

Another point is: first time we click on the button to open the recaptcha popup, after clicking on next the popup disappear silently and nothing happen. After re opening it we get the incognito message.
It clearly looks like a bug for this first click behavior. Why would we have to run this recaptcha popup twice ? In general when we design a web solution we are supposed to make it simple, the more click to do something the worse…

Do you have anything else for zoom being embedded in iFrame to make this recaptcha feature working?

Sorry about have this, issue. if you 3min haven’t pass recaptcha, websdk will auto close popup window. have you try https://github.com/zoom/sample-app-web ? try use join iFrame button


other issue about recaptcha don’t work. https://zoom.github.io/sample-app-web/captcha.html

No, what i describe is not because the popup is automatically closed after 3 minutes.
This behavior is immediate.

The sample app does not seems to start properly in local (i followed the instructor: git clone, npm install, npm run start)

So i don’t know if this application works or not.

What i’m sure is that with this sample application also provided by zoom, i get exactly the same result as my application.

which operation system and npm version you use?

6.14.5 under ubuntu 18.04

Yes, I fund the issue, the Local version can’t run ubuntu, can you try the CDN version. I try ubuntu 16.04, it works, I will fix the Local version run ubuntu, but it need more time.

Hi,

I am using an iframe, I have set the sandbox attribute as follows:
“allow-forms allow-scripts allow-same-origin allow-popups allow-popups-to-escape-sandbox”

The WebSDK is loaded from the Zoom CDN:

https://source.zoom.us/

Having completed the captcha, and completing the captcha - nothing happens, i.e., the meeting is not joined. All is working fine in 1.7.7. I have uploaded a video of the issue, you can see here:

And, here is the image after completing the Captcha - thought its important to watch the video, as you can see I have completed the Captcha and nothing is then happening, just the Captcha window closing.

Hi Team! Thank you for all the good work and prompt responses.

Same issue as everyone else here.

I would like to add everything is working on local development.
When we deploy to production we are getting this issue of captcha not going through because of being in incognito mode when we are not.

We tried using 1.7.8 - not working for us. We get invalid init parameters error.

We also tried the 1.7.9.1 fix which you have pasted above.
This is also not working in production.

Please note, our application is deployed on Netlify statically. We do not serve it over a web server.
Everything seems to work, except the incognito issue.

How do we proceed?

Hi @Michael_Purnell,

Will there be an option to disable the recaptcha before this version is enforced? This recaptcha is a no go for us right now.

Agreed! We are embedding this in an already validated environment, so the recaptcha idisrupts the smooth integration. We’ll opt for another streaming option before incorporating something that requires user verification.

1 Like

@Michael_Purnell @JackYang @tommy

Guys … this is starting to get ridiculous. With each new update release, broken code is constantly introduced. Things are fixed and other broken. It’s as if ZERO testing is done prior to release. It’s gotten to a point where the only stable version is 1.7.7 and version runs like a dogs breakfast.

I just tried this on my local using Chrome as the host and Firefox as a guest. I have 2 cameras so I can use one for each user. The host starts up fine, the guest is greeted with an ugly white screen with “check captcha” which doesn’t even work. If they click 4 times, a help button appears and THAT doesn’t even work.

Don’t release code if it is broken or completely destroys the user experience. In this case, you have broken our platform where we can’t use Zoom as a service.

I am considering bringing this up legally as we pay for a Business Plan and we can’t use the service properly anymore. We need the business plan for webinars, but for the rest we are being rorted. Happy to take this up privately as well outside of this forum if there is a direct number or email I can contact.

Regards,
Simone

1 Like

Sorry, inconvenience to you. currently Recaptcha still have some issue.

  1. safari default can’t pass checking.
  2. only can works https://youdomain:443
  3. const domainReg = /(?!://)([a-zA-Z0-9]+.)?([a-zA-Z0-9][a-zA-Z0-9-]+).([a-zA-Z]{2,6})/?.*/; if you domain miss match the Reg, it also don’t work.
  4. the help link https://zoom.github.io/sample-app-web/captcha
    you can still use 1.7.7 or 1.7.8 or ask zoom disable recaptcha for you account . @Michael_Purnell

Hi @JackYang,

  1. umm … ok. Pretty big market to be cutting out, but it can wait for now as far as we are concerned.
  2. I’m obviously using https as the protocol of the domain, but I am not appending the port number to the URL. Our production doesn’t either. I hope you don’t mean that it must contain the port number in the URL, because that is not going to work.
  3. the domain matches the expression, so no issue there.
  4. I’m not interested in captcha

Regarding using previous versions, that is the only option at the moment. As buggy as it is, 1.7.8 is slightly better than 1.7.7.

If it is possible to have recaptcha disabled on our account that would be amazing. But the reality is that it MUST be given as an option to the developer whether to enable it or not, it can’t be imposed, irrespective of whether it works or not. In our case, it renders our integration useless so it has to be removed.

Thank you.
Simone

@JackYang
Can you help us start 1.7.8 in production for us in the meantime?

This is our code for 1.7.9, works perfectly. How do we change it to work for 1.7.8?

<script src="https://source.zoom.us/1.7.9/lib/vendor/react.min.js"></script>
<script src="https://source.zoom.us/1.7.9/lib/vendor/react-dom.min.js"></script>
<script src="https://source.zoom.us/1.7.9/lib/vendor/redux.min.js"></script>
<script src="https://source.zoom.us/1.7.9/lib/vendor/redux-thunk.min.js"></script>
<script src="https://source.zoom.us/1.7.9/lib/vendor/jquery.min.js"></script>
<script src="https://source.zoom.us/1.7.9/lib/vendor/lodash.min.js"></script>
<script src="https://source.zoom.us/zoom-meeting-1.7.9.min.js"></script>
<script src="js/tool.js"></script>

<script>
    setTimeout(() => {
        const testTool = window.testTool;
        // get meeting args from url
        const tmpArgs = testTool.parseQuery();
        console.log("meeting window", tmpArgs)
        const meetingConfig = {
            apiKey: tmpArgs.apiKey,
            meetingNumber: tmpArgs.mn,
            userName: (function () {
                if (tmpArgs.name) {
                    try {
                        return testTool.b64DecodeUnicode(tmpArgs.name);
                    } catch (e) {
                        return tmpArgs.name;
                    }
                }
                return (
                    "CDN#" +
                    tmpArgs.version +
                    "#" +
                    testTool.detectOS() +
                    "#" +
                    testTool.getBrowserInfo()
                );
            })(),
            passWord: tmpArgs.pwd,
            leaveUrl: "/thankyou.html",
            role: parseInt(tmpArgs.role, 10),
            userEmail: (function () {
                try {
                    return testTool.b64DecodeUnicode(tmpArgs.email);
                } catch (e) {
                    return tmpArgs.email;
                }
            })(),
            lang: tmpArgs.lang,
            signature: tmpArgs.signature || "",
            china: tmpArgs.china === "1",
        };

        console.log(JSON.stringify(ZoomMtg.checkSystemRequirements()));

        // it's option if you want to change the WebSDK dependency link resources. setZoomJSLib must be run at first
        ZoomMtg.preLoadWasm();
        ZoomMtg.prepareJssdk();
        function beginJoin(signature) {
            const meetingInfo= ["topic","host","participant","dc"]
            const variables = {
                leaveUrl: meetingConfig.leaveUrl,
                webEndpoint: meetingConfig.webEndpoint,
                disableInvite: true,
                meetingInfo,
                success: function () {
                    console.log(meetingConfig);
                    console.log("signature", signature);
                    $.i18n.reload(meetingConfig.lang);
                    console.log("andar ki baat", {
                        meetingNumber: meetingConfig.meetingNumber,
                        userName: meetingConfig.userName,
                        signature: signature,
                        apiKey: meetingConfig.apiKey,
                        userEmail: meetingConfig.userEmail,
                        passWord: meetingConfig.passWord
                    })
                    ZoomMtg.join({
                        meetingNumber: meetingConfig.meetingNumber,
                        userName: meetingConfig.userName,
                        signature: signature,
                        apiKey: meetingConfig.apiKey,
                        userEmail: meetingConfig.userEmail,
                        passWord: meetingConfig.passWord,
                        success: function (res) {
                            console.log("join meeting success");
                            ZoomMtg.showMeetingHeader({
                                show: false
                            })
                            ZoomMtg.showInviteFunction({
                                show: false
                            });
                        },
                        error: function (res) {
                            console.log("error in join")
                            console.log(res);
                        },
                    });
                },
                error: function (res) {
                    console.log(res);
                }
            }
            console.log(variables)
            ZoomMtg.init(variables);
        }
        console.log("Did this run")
        beginJoin(meetingConfig.signature);

    }, 2500);
</script>
<script src="https://source.zoom.us/1.7.8/lib/vendor/react.min.js"></script>
<script src="https://source.zoom.us/1.7.8/lib/vendor/react-dom.min.js"></script>
<script src="https://source.zoom.us/1.7.8/lib/vendor/redux.min.js"></script>
<script src="https://source.zoom.us/1.7.8/lib/vendor/redux-thunk.min.js"></script>
<script src="https://source.zoom.us/1.7.8/lib/vendor/jquery.min.js"></script>
<script src="https://source.zoom.us/1.7.8/lib/vendor/lodash.min.js"></script>
<script src="https://source.zoom.us/zoom-meeting-1.7.8.min.js"></script>
<script src="js/tool.js"></script>

<script>
    setTimeout(() => {
        const testTool = window.testTool;
        // get meeting args from url
        const tmpArgs = testTool.parseQuery();
        console.log("meeting window", tmpArgs)
        const meetingConfig = {
            apiKey: tmpArgs.apikey,
            meetingNumber: tmpArgs.mn,
            userName: (function () {
                if (tmpArgs.name) {
                    try {
                        return testTool.b64DecodeUnicode(tmpArgs.name);
                    } catch (e) {
                        return tmpArgs.name;
                    }
                }
                return (
                    "CDN#" +
                    tmpArgs.version +
                    "#" +
                    testTool.detectOS() +
                    "#" +
                    testTool.getBrowserInfo()
                );
            })(),
            passWord: tmpArgs.pwd,
            leaveUrl: "/thankyou.html",
            role: parseInt(tmpArgs.role, 10),
            userEmail: (function () {
                try {
                    return testTool.b64DecodeUnicode(tmpArgs.email);
                } catch (e) {
                    return tmpArgs.email;
                }
            })(),
            lang: tmpArgs.lang,
            signature: tmpArgs.signature || "",
            china: tmpArgs.china === "1",
        };

        console.log(JSON.stringify(ZoomMtg.checkSystemRequirements()));

        // it's option if you want to change the WebSDK dependency link resources. setZoomJSLib must be run at first
        ZoomMtg.preLoadWasm();
        ZoomMtg.prepareJssdk();
        function beginJoin(signature) {
            // const meetingInfo= ["topic","host","participant","dc"];
            const variables = {
                leaveUrl: meetingConfig.leaveUrl,
                webEndpoint: meetingConfig.webEndpoint,
                disableInvite: true,
                // meetingInfo, // this 1.7.9 api
                success: function () {
                    console.log(meetingConfig);
                    console.log("signature", signature);
                    $.i18n.reload(meetingConfig.lang);
                    console.log("andar ki baat", {
                        meetingNumber: meetingConfig.meetingNumber,
                        userName: meetingConfig.userName,
                        signature: signature,
                        apiKey: meetingConfig.apiKey,
                        userEmail: meetingConfig.userEmail,
                        passWord: meetingConfig.passWord
                    })
                    ZoomMtg.join({
                        meetingNumber: meetingConfig.meetingNumber,
                        userName: meetingConfig.userName,
                        signature: signature,
                        apiKey: meetingConfig.apiKey,
                        userEmail: meetingConfig.userEmail,
                        passWord: meetingConfig.passWord,
                        success: function (res) {
                            console.log("join meeting success");
                            ZoomMtg.showMeetingHeader({
                                show: false
                            })
                            ZoomMtg.showInviteFunction({
                                show: false
                            });
                        },
                        error: function (res) {
                            console.log("error in join")
                            console.log(res);
                        },
                    });
                },
                error: function (res) {
                    console.log(res);
                }
            }
            console.log(variables)
            ZoomMtg.init(variables);
        }
        console.log("Did this run")
        beginJoin(meetingConfig.signature);

    }, 2500);
</script>

@darragh.duffy You have exact same issue as me.
After spending some time with internal zoom dev, it has been found that the regex used to detect & use the original domain name (for the zoom sdk cookie i guess) is incorrect thus break the recaptcha feature when your application domain name is not covered by that regex.
This is why nothing happen even after completing the recaptcha.

This is what @JackYang reported in his summary. Check the regex to see if it’s coming from there too but i’m pretty sure it is. If not, then may be interesting to report it.

What a naive & restrictive domain regex…

Here is a way to extract a domain name (don’t know if that’s the best but cover pretty well most of patterns):
^(?:https?://)?(?:[^@/\n]+@)?(?:www.)?([^:/?\n]+)

Please fix it ASAP, we cannot change our domain names just to have the 1.7.9 working.