Meeting SDK Type and Version
3.11.0 version
Description
Joining Meeting Timeout or Browser restriction
Signature is invalid
Error?
errorCode: 3712
errorMessage: "Signature is invalid."
method: "join"
result: "Invalid signature."
status: false
Troubleshooting Routes
Please check github:https://github.com/FindingNewWay/zoom
How To Reproduce
Step 1: I created Server-to-Server OAuth zoom app and have clientID = _tPbvILqRACkUsmgX5_s5A
Step 2: Schedule new meeting zoom by call zoom API https://us06web.zoom.us/j/84832162595?pwd=LyCHOZUgXHqrPO7Iixzw1gFl48TSDS.1
I got
Meeting number: 84832162595
Meeting password: 7tjL5X
Step 3: Make basecode64 signature to gen with client_secret at back end using php
private function generateSignature($meetingNumber, $role)
{
$apiKey = env('ZOOM_CLIENT_ID');
$apiSecret = env('ZOOM_CLIENT_SECRET');
$payload = [
'sdkKey' => $apiKey,
'mn' => $meetingNumber,
'role' => $role,
'iat' => time(),
'exp' => time() + 60 * 60 * 2, // Token valid for 2 hours
'appKey' => $apiKey,
'tokenExp' => time() + 60 * 60 * 2
];
return JWT::encode($payload, $apiSecret, 'HS256');
}
Here are my generated signature:
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzZGtLZXkiOiJfdFBidklMcVJBQ2tVc21nWDVfczVBIiwibW4iOiI4NDgzMjE2MjU5NSIsInJvbGUiOjEsImlhdCI6MTczNjQwODc4NiwiZXhwIjoxNzM2NDE1OTg2LCJhcHBLZXkiOiJfdFBidklMcVJBQ2tVc21nWDVfczVBIiwidG9rZW5FeHAiOjE3MzY0MTU5ODZ9.SVlBbaooib9M3N6dD1B3A6AodC5WTty-s0LetjMHy8g
Step 4: Make front end blade file in Laravel using Meeting SDK
<!DOCTYPE html>
<html>
<head>
<title>Join Zoom Meeting</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link type="text/css" rel="stylesheet" href="https://source.zoom.us/3.11.0/css/bootstrap.css" />
<link type="text/css" rel="stylesheet" href="https://source.zoom.us/3.11.0/css/react-select.css" />
</head>
<body class="ReactModal__Body--open">
<div id="zmmtg-root"></div>
<div id="aria-notify-area"></div>
<div class="ReactModalPortal"></div>
<div class="ReactModalPortal"></div>
<div class="ReactModalPortal"></div>
<div class="ReactModalPortal"></div>
<div class="global-pop-up-box"></div>
<div class="sharer-controlbar-container sharer-controlbar-container--hidden"></div>
<script src="https://source.zoom.us/3.11.0/lib/vendor/react.min.js"></script>
<script src="https://source.zoom.us/3.11.0/lib/vendor/react-dom.min.js"></script>
<script src="https://source.zoom.us/3.11.0/lib/vendor/redux.min.js"></script>
<script src="https://source.zoom.us/3.11.0/lib/vendor/redux-thunk.min.js"></script>
<script src="https://source.zoom.us/3.11.0/lib/vendor/lodash.min.js"></script>
<script src="https://source.zoom.us/zoom-meeting-3.11.0.min.js"></script>
<script src="https://source.zoom.us/3.11.0/zoom-meeting-embedded-3.11.0.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function () {
// Ensure ZoomMtg is defined
if (typeof ZoomMtg !== 'undefined') {
ZoomMtg.setZoomJSLib('https://source.zoom.us/3.11.0/lib', '/av');
ZoomMtg.preLoadWasm();
ZoomMtg.prepareWebSDK();
ZoomMtg.i18n.load('en-US');
ZoomMtg.i18n.reload('en-US');
const meetConfig = {
sdkKey: '{{ env('ZOOM_CLIENT_ID') }}',
signature: '{{ $signature }}',
meetingNumber: '{{ $meetingNumber }}',
userName: 'Guest',
passWord: '{{ $passWord }}',
leaveUrl: 'http://localhost:8000',
role: 0
};
console.log(meetConfig);
ZoomMtg.init({
leaveUrl: meetConfig.leaveUrl,
success: function () {
ZoomMtg.join({
sdkKey: meetConfig.sdkKey,
signature: meetConfig.signature,
meetingNumber: meetConfig.meetingNumber,
passWord: meetConfig.passWord,
userName: meetConfig.userName,
success: function (res) {
console.log('join meeting success');
},
error: function (res) {
console.log(res);
}
});
},
error: function (res) {
console.log(res);
}
});
} else {
console.error('ZoomMtg is not defined');
}
});
</script>
</body>
</html>
Here is meeting configuration:
leaveUrl:"http://localhost:8000"
meetingNumber: "84832162595"
passWord: "7tjL5X"
role: 0
sdkKey: "_tPbvILqRACkUsmgX5_s5A"
signature: "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzZGtLZXkiOiJfdFBidklMcVJBQ2tVc21nWDVfczVBIiwibW4iOiI4NDgzMjE2MjU5NSIsInJvbGUiOjEsImlhdCI6MTczNjQwODc4NiwiZXhwIjoxNzM2NDE1OTg2LCJhcHBLZXkiOiJfdFBidklMcVJBQ2tVc21nWDVfczVBIiwidG9rZW5FeHAiOjE3MzY0MTU5ODZ9.SVlBbaooib9M3N6dD1B3A6AodC5WTty-s0LetjMHy8g"
userName: "Guest"
I got the issue that can not join meeting.
errorCode: 3712
errorMessage: "Signature is invalid."
method: "join"
result: "Invalid signature."
status: false
I event try to get signature generate from https://developers.zoom.us/docs/meeting-sdk/auth/
And hard code in blade file
const meetConfig = {
sdkKey: '{{ env('ZOOM_CLIENT_ID') }}',
signature: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBLZXkiOiJfdFBidklMcVJBQ2tVc21nWDVfczVBIiwic2RrS2V5IjoiX3RQYnZJTHFSQUNrVXNtZ1g1X3M1QSIsIm1uIjoiODQ4MzIxNjI1OTUiLCJyb2xlIjoxLCJ0b2tlbkV4cCI6MTczNjQxMjY2NCwiaWF0IjoxNzM2NDA5MDY0LCJleHAiOjE3MzY0MTI2NjR9.tCe3tapKehkbmseXT_gnXFwPZSnlVQmq99N9Xeqneos',
meetingNumber: '{{ $meetingNumber }}',
userName: 'Guest',
passWord: '{{ $passWord }}',
leaveUrl: 'http://localhost:8000',
role: 0
};
But the same issue occurred. Please support
Thanks