1.8.6 : no error, but not firing

Description
web 1.8.6 not working

Error
no error message…

Which version?
1.8.6

To Reproduce(If applicable)
Steps to reproduce the behavior:
account contact@extrao.fr meeting id 94423980600 sdk 1.8.6

web app : https://extrao.fr/cafe (click ‘ouvrir le cafe dans le navigateur’) → nothing happens, no error. "Joining discussion’ on screen but nothing happens next.
console.log :
[Log] init (cafe, line 137)
[Log] lang (cafe, line 143)
[Log] pre load wasm success: – “source.zoom .us /1.8.6/lib/av/6290_audio.encode.wasm” (zoom-meeting-1.8.6.min.js, line 2)
[Log] pre load wasm success: – “source.zoom .us /1.8.6/lib/av/6290_video.decode.wasm” (zoom-meeting-1.8.6.min.js, line 2)
[Error] Failed to load resource: the server responded with a status of 403 () (webim.min.js.map, line 0)
[Log] join (cafe, line 146)
… and then nothing happens…

I have a SDK (app name Extrao)

marketplace.zoom . us/develop/apps/EJGMbQDVQeGLU4m0AuAbrQ/information

the problem is not solved, as not also for all the other people in the original thread…

Device (please complete the following information):

  • Device: tested on Mac, iOS
  • OS: tested on macOS, iOS
  • Browser:safari, chrome,opera : same

Additional context

Hey @extrao,

Thank you for reaching out to the Zoom Developer Forum. Please provide the signature you’re using when attempting to join this meeting and I’ll investigate this further.

Thanks,
Max

php :

function generate_signature ( $api_key, $api_secret, $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_secret, true);
        $_sig = $api_key . "." . $meeting_number . "." . $time . "." . $role . "." . base64_encode($hash);
        return rtrim(strtr(base64_encode($_sig), '+/', '-_'), '=');
}
generate_signature('QPzFRsn46rLfQbUvBz7nJ3SGPWBHUG0DWJC5','(my secret that I don't post here)','94423980600',0);

js :

<link type="text/css" rel="stylesheet" href="https://source.zoom.us/1.8.6/css/bootstrap.css" />
<link type="text/css" rel="stylesheet" href="https://source.zoom.us/1.8.6/css/react-select.css" />
 <div id="zmmtg-root" style=margin:0;></div>
 <div id="aria-notify-area"></div>
    <script src="https://source.zoom.us/1.8.6/lib/vendor/react.min.js"></script>
    <script src="https://source.zoom.us/1.8.6/lib/vendor/react-dom.min.js"></script>
    <script src="https://source.zoom.us/1.8.6/lib/vendor/redux.min.js"></script>
    <script src="https://source.zoom.us/1.8.6/lib/vendor/redux-thunk.min.js"></script>
    <script src="https://source.zoom.us/1.8.6/lib/vendor/lodash.min.js"></script>
<script src="https://source.zoom.us/zoom-meeting-1.8.6.min.js"></script>
<script>
function join() {
gId('zmmtg-root','remove','hidden');
ZoomMtg.setZoomJSLib('https://source.zoom.us/1.8.6/lib', '/av'); 
ZoomMtg.preLoadWasm();
ZoomMtg.prepareJssdk();
console.log('init');
ZoomMtg.init(
{
	leaveUrl: 'https://extrao.fr/cafe',
	isSupportAV: true,
	success: function() {
console.log('lang');
ZoomMtg.i18n.load('fr-FR');ZoomMtg.i18n.reload('fr-FR');
setTimeout(function() {
console.log('join');
ZoomMtg.join({
  signature: '(obtained from php above)',
  meetingNumber: '94423980600',  passWord: '329719',
  userName: 'test',
  apiKey: 'QPzFRsn46rLfQbUvBz7nJ3SGPWBHUG0DWJC5',
  userEmail: '(filled from logged in user)',
  role:0,
  lang:'fr-FR',
  success: (success) => {    console.log('success',success)  },
  error: (error) => {    console.log('error',error)  }
  });
},1000);
}

});		
				

}

success is never called.

Hey @extrao ,

I believe this is causing the issue. Please try using the Web SDK without changing it’s display properties so you can get it working first. :slight_smile:

Thanks,
Tommy

hi, no this is my framework and just removes the “hidden” class (“display:none” css) from zmmtg-root. I removed this line and the one adding the class before, and the problem is the same. May I remind you : success is not even called by your ZoomMtg.join method, this is not a CSS problem. The last log is “join”, just before ZoomMtg.join .

Hey @extrao,

Please try removing the the lang and role fields from the join() function as those are not documented.

If that doesn’t work, you may want to try replacing the arrow functions that you have with standard functions:

Let me know if that helps.

Thanks,
Max

yay ! some progress indeed… now “invalid signature”. my bad, I put ‘role’ in the wrong method.
removing role:0 leads now to “invalid signature”. (errorCode: 3712 in method “join”)
I can’t find why the signature is rejected, though… I copied the PHP from https://marketplace.zoom.us/docs/sdk/native-sdks/web/build/signature and passed the result directly into the JS :

function generate_signature ( $api_key, $api_secret, $meeting_number, $role){
date_default_timezone_set( "UTC" );
$time = time() * 1000 - 30000; 
$data = base64_encode($api_key . $meeting_number . $time . $role);
$hash = hash_hmac('sha256', $data, $api_secret, true);
$_sig = $api_key . "." . $meeting_number . "." . $time . "." . $role . "." . base64_encode($hash);
return rtrim(strtr(base64_encode($_sig), '+/', '-_'), '=');
}
generate_signature('QPzFRsn46rLfQbUvBz7nJ3SGPWBHUG0DWJC5','...','94423980600',0);

Hey @extrao,

I’m glad to hear that helped! While you are supposed to create an SDK app, as you have done, you’ll actually want to authenticate with the Web SDK using a JWT API Key and Secret instead of the SDK Key and Secret.

Please try creating a JWT app and using the credentials from that.

Thanks,
Max