Zoom meeting stuck

In my website i want to embedded zoom meet through js. but when I click the join meet button I can not join the meeting here i am stuck the Joining Meeting Page. Please help me

here is my js code:

 <button onClick="getSignature()">Join Meeting</button>
                    <script src="https://source.zoom.us/2.17.0/lib/vendor/react.min.js"></script>
                    <script src="https://source.zoom.us/2.17.0/lib/vendor/react-dom.min.js"></script>
                    <script src="https://source.zoom.us/2.17.0/lib/vendor/redux.min.js"></script>
                    <script src="https://source.zoom.us/2.17.0/lib/vendor/redux-thunk.min.js"></script>
                    <script src="https://source.zoom.us/2.17.0/lib/vendor/lodash.min.js"></script>
                    <!--                    <script src="https://source.zoom.us/2.0.1/zoom-meeting-embedded-2.0.1.min.js"></script>-->
                    <script src="https://source.zoom.us/zoom-meeting-2.17.0.min.js"></script>

<script>
                        ZoomMtg.setZoomJSLib('https://source.zoom.us/2.17.0/lib', '/av')

                        ZoomMtg.preLoadWasm()
                        ZoomMtg.prepareWebSDK()
                        // loads language files, also passes any error messages to the ui
                        ZoomMtg.i18n.load('en-US')
                        ZoomMtg.i18n.reload('en-US')

                        var authEndpoint = ''
                        var sdkKey = 'redacted'
                        var meetingNumber = '89895716095'
                        var passWord = 'redacted'
                        var role = 0
                        var userName = 'JavaScript'
                        var userEmail = ''
                        var registrantToken = ''
                        var zakToken = ''
                        var leaveUrl = 'https://zoom.us'

                        function getSignature() {
                        fetch(authEndpoint, {
                        method: 'POST',
                        headers: {
                        'Content-Type': 'application/json'
                        },
                        body: JSON.stringify({
                        meetingNumber: meetingNumber,
                        role: role
                        })
                        }).then((response) => {
                        return response.json()
                        }).then((data) => {
                        console.log(data)
                        startMeeting(data.signature)
                        }).catch((error) => {
                        console.log(error)
                        })
                        }

                        function startMeeting(signature) {

                        document.getElementById('zmmtg-root').style.display = 'block'

                        ZoomMtg.init({
                        leaveUrl: leaveUrl,
                        success: (success) => {
                        console.log(success)
                        ZoomMtg.join({
                        signature: signature,
                        sdkKey: sdkKey,
                        meetingNumber: meetingNumber,
                        passWord: passWord,
                        userName: userName,
                        userEmail: userEmail,
                        tk: registrantToken,
                        zak: zakToken,
                        success: (success) => {
                        console.log(success)
                        },
                        error: (error) => {
                        console.log(error)
                        },
                        })
                        },
                        error: (error) => {
                        console.log(error)
                        }
                        })
                        }
                    </script>

here i use clientid as sdk key and i define meeting code and password statically
@tommy @chunsiong.zoom

@njangon71 what is your authEndpoint?

@chunsiong.zoom
Here is my api in python. From this api i generate signature.

from this api 
 @http.route('/api/zoom_signature', type='json', auth="none", methods=['POST'], csrf=False)
    def generate_zoom_signature(self, **kw):
        try:
            # Get the JSON request data containing meetingNumber and role
            request_data = json.loads(http.request.httprequest.data)

            # Your Zoom app credentials
            CLIENT_SECRET = "redacted"  # Replace with your client secret
            CLIENT_ID = "redacted"  # Replace with your client ID

            # Define a constant for the validity duration, e.g., 48 hours (2 days)
            validity_duration_hours = 48
            expiration_time = datetime.utcnow() + timedelta(hours=validity_duration_hours)

            data = {
                "appKey": CLIENT_ID,
                "iat": int(datetime.utcnow().timestamp()),
                "exp": expiration_time.strftime("%Y-%m-%d %H:%M:%S UTC"),
                "tokenExp": expiration_time.strftime("%Y-%m-%d %H:%M:%S UTC"),
                "mn": request_data.get('meetingNumber'),
                "role": request_data.get('role')
            }
            print(data)
            # Generate the Zoom signature
            signature = self.generate_signature(data, CLIENT_SECRET)

            # Return the signature as a proper JSON response
            return {'signature': signature}

        except Exception as e:
            return {'error': str(e)}

    def generate_signature(self, data, secret):
        encoded_jwt = jwt.encode(data, secret, algorithm="HS256")
        return encoded_jwt

And here is my js:

<script>
                        ZoomMtg.setZoomJSLib('https://source.zoom.us/2.17.0/lib', '/av');

                        ZoomMtg.preLoadWasm();
                        ZoomMtg.prepareWebSDK();

                        ZoomMtg.i18n.load('en-US');
                        ZoomMtg.i18n.reload('en-US');

                        var authEndpoint = '/api/zoom_signature';
                        var sdkKey = 'redacted';
                        var meetingNumber = '85011060073';
                        var passWord = 'redacted';
                        var role = 0;
                        var userName = 'JavaScript';
                        var userEmail = 'njangon71@gmail.com';
                        var registrantToken = '';
                        var zakToken = '';
                        var leaveUrl = 'https://zoom.us';

                        function getSignature() {
                        fetch(authEndpoint, {
                        method: 'POST',
                        headers: {
                        'Content-Type': 'application/json'
                        },
                        body: JSON.stringify({
                        meetingNumber: meetingNumber,
                        role: role
                        })
                        })
                        .then((response) => response.json())
                        .then((data) => {
                        var signature = data.result.signature; // Access the signature directly
                        console.log("Signature received:", signature);
                        startMeeting(signature);
                        })
                        .catch((error) => {
                        console.log(error);
                        });
                        }

                        function startMeeting(signature) {
                        document.getElementById('zmmtg-root').style.display = 'block';

                        ZoomMtg.init({
                        leaveUrl: leaveUrl,
                        success: (success) => {
                        console.log(success);
                        console.log("Signature:", signature);
                        console.log("SDK Key:", sdkKey);
                        console.log("Meeting Number:", meetingNumber);
                        console.log("Password:", passWord);
                        console.log("User Name:", userName);
                        console.log("User Email:", userEmail);
                        console.log("Registrant Token:", registrantToken);
                        console.log("Zak Token:", zakToken);

                        console.log("ZoomMtg.join Object:", {
                        signature: signature,
                        sdkKey: sdkKey,
                        meetingNumber: meetingNumber,
                        passWord: passWord,
                        userName: userName,
                        userEmail: userEmail,
                        tk: registrantToken,
                        zak: zakToken
                        });

                        ZoomMtg.join({
                        signature: signature,
                        sdkKey: sdkKey,
                        meetingNumber: meetingNumber,
                        passWord: passWord,
                        userName: userName,
                        userEmail: userEmail,
                        tk: registrantToken,
                        zak: zakToken,
                        success: (success) => {
                        console.log("Join Success:", success);
                        },
                        error: (error) => {
                        console.log("Join Error:", error);
                        }
                        });
                        },
                        error: (error) => {
                        console.log(error);
                        }
                        });
                        }
                    </script>

When i click join meeting its showing Join meeting failed Invalid signature.

@njangon71 , you might want to reset your secret key.

Do you have the signature which was generated by the code?

I generate the signature from puython api and fetch it in my js
here I attached screenshots of console and error :



Do I need to regenerate the Client Secret again?

@njangon71
Yes you need to generate your secret again, and please do not share it here.

@chunsiong.zoom
I regenerate my Client Secret again and define this in my api but same things happen.
Signature Invalid.

@njangon71 , I have PMed you for your signature, please share in the PM for troubleshooting

@chunsiong.zoom

What is PM?
I do not Understand.

@njangon71 thanks for the information.
We are checking this on our side
ZSEE-110892

@chunsiong.zoom
Okay. I sent you my account information.

@chunsiong.zoom
hello brother kindly can you tell me the status of ZSEE-110892.
Its an emergency.

@njangon71 If there is anything urgent or emergency, I would strongly encourage you to get a paid developer support.

The developer forum is community based support. There is no SLA, nonetheless we will try to resolve the issues based on best effort.

Currently this is still ongoing, and there are no updates at the moment. I’ll reply once I get an update.

@chunsiong.zoom
Okay I am waiting for your update.

@chunsiong.zoom
Is there any update ZSEE-110892?

@njangon71 ,

Updates:

Could you try these

  • Submitting the SDK for publishing
  • Regenerating SDK Secret / Client Secret

@chunsiong.zoom
I regenerate client id and secret but its not solve my issue.
No I am not submitting my app i just create meeting sdk app info crediential and scope.

@chunsiong.zoom
Is there any problem in my app or account? Or do i need to submit my app?

@njangon71 , I’m still waiting for response, hang on

@chunsiong.zoom
Okay