0

Hi I integrating zoom web SDK in local join to the zoom meeting then facing an error but I pass all write parameters and details. please help me, somebody. also how to store this $_sig variable value in meeting.js signature variable

<?php

$api_key='9KqEY0EZFoad7s8sq7GkyEsZ30Bgydd0qkhV';
$api_sercet='YKdG78n3qaAwTYSCF56kkz29YyDQlyK9IEkf';
$meeting_number=97843021700;
$role=0;

function generate_signature( $api_key, $api_sercet, $meeting_number, $role){
  
  $time = time() * 1000 - 30000; //time in milliseconds (or close enough)

    $data = base64_encode($api_key . $meeting_number . $time . $role);

     $hash = hash_hmac('sha256', $data, $api_sercet, true);

   $_sig = $api_key . "." . $meeting_number . "." . $time . "." . $role . "." . base64_encode($hash);
print_r( $_sig);
  return rtrim(strtr(base64_encode($_sig), '+/', '-_'), '=');
}
generate_signature( $api_key, $api_sercet, $meeting_number, $role);
?>

I have attached the enter image description hereerror screen sort please see it and provide me solution

1 Answers1

0
<!DOCTYPE html>
<head>
    <title>ZOOM WEB LIVE CLASS</title>
    <meta charset="utf-8" />
    <!--<link rel="stylesheet" href="bootstrap/css/bootstrap.css">
    <link rel="stylesheet" href="font-awesome/css/all.min.css">-->
    <link href="../bootstrap.css" rel="stylesheet">
    <link href="../all.min.css" rel="stylesheet">
    <link type="text/css" rel="stylesheet" href="https://source.zoom.us/1.9.1/css/react-select.css" />
    <meta name="format-detection" content="telephone=no">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
</head>
<body oncontextmenu="return false;">
    <style type="text/css">
        body {
            padding-top: 50px;
        }
        .navbar-inverse {
            background-color: #313131;
            border-color: #404142;
        }
        .navbar-header h4 {
            margin: 0;
            padding: 15px 15px;
            color: #c4c2c2;
        }
        
        
        
        .navbar-right h5 {
            margin: 0;
            padding: 9px 5px;
            color: #c4c2c2;
        }
        .navbar-inverse .navbar-collapse, .navbar-inverse .navbar-form{
            border-color: transparent;
        }
    </style>
            
    
            <nav id="nav-tool" class="navbar navbar-inverse navbar-fixed-top">
        <div class="container">
            <div class="navbar-header">
                <h4>zoom online class</h4>
            </div>
            <div class="navbar-form navbar-right">
                <h5> Host: <strong>Host Name</strong></h5>
            </div>
        </div>
    </nav>
    <script src="https://source.zoom.us/1.9.1/lib/vendor/react.min.js"></script>
    <script src="https://source.zoom.us/1.9.1/lib/vendor/react-dom.min.js"></script>
    <script src="https://source.zoom.us/1.9.1/lib/vendor/redux.min.js"></script>
    <script src="https://source.zoom.us/1.9.1/lib/vendor/redux-thunk.min.js"></script>
    <script src="https://source.zoom.us/1.9.1/lib/vendor/lodash.min.js"></script>
    <script src="https://source.zoom.us/zoom-meeting-1.9.1.min.js"></script>
    <script src="..//jquery.min.js"></script>
  
    <script type="text/javascript">
        document.onkeydown = function(e) {
            if(event.keyCode == 123) {
                return false;
            }
            if(e.ctrlKey && e.shiftKey && e.keyCode == 'I'.charCodeAt(0)) {
                return false;
            }
            if(e.ctrlKey && e.shiftKey && e.keyCode == 'C'.charCodeAt(0)) {
                return false;
            }
            if(e.ctrlKey && e.shiftKey && e.keyCode == 'J'.charCodeAt(0)) {
                return false;
            }
            if(e.ctrlKey && e.keyCode == 'U'.charCodeAt(0)) {
                return false;
            }
        }

        ZoomMtg.preLoadWasm();
        ZoomMtg.prepareJssdk();
        var meetConfig = {
            apiKey: "API_KEY",
            apiSecret: "API_SECRET",
            meetingNumber: "Meeting Number",
            userName: "Host Name",
            passWord: "12345",
            leaveUrl: "redirect url",
            role: parseInt(1, 10)
        };
        var signature = ZoomMtg.generateSignature({
            meetingNumber: meetConfig.meetingNumber,
            apiKey: meetConfig.apiKey,
            apiSecret: meetConfig.apiSecret,
            role: meetConfig.role,
            success: function(res){
                console.log(res.result);
            }
        });
        ZoomMtg.i18n.load("en-US");
        ZoomMtg.init({
            leaveUrl: meetConfig.leaveUrl,
            isSupportAV: true,
            success: function () {
                ZoomMtg.i18n.load("en-US");
                ZoomMtg.join({
                    meetingNumber: meetConfig.meetingNumber,
                    userName: meetConfig.userName,
                    signature: signature,
                    apiKey: meetConfig.apiKey,
                    passWord: meetConfig.passWord,
                    success: function(res){
                        $('#nav-tool').hide();
                        console.log(res);
                    },
                    error: function(res) {
                        console.log(res);
                    }
                });
            },
            error: function(res) {
                console.log(res);
            }
        });
    </script>
</body>