Getting error 200 (No Permission) with new Webclient

Hi everyone,

I am trying to use the WebClient but for some reason this is not working… 


I followed the documentation I found here: .

I did:

  • Ran  npm install
  • Using my own  API Key / API Secret
  • Ran  http-server
  • Created a meeting from the Zoom Client
  • Opened the browser on
  • Copy pasted the meeting number, added a name, and pressed join.

And in the console I can find this (in the requests tab):

{status: false, errorCode: 200, errorMessage: “No permission”, result: null, method: “join”}

What did I do wrong?

Remark: The request seems to be a get (I thought it should be a post). I use the URL generated (copy-pasted from the requests tab in the console) and past it in the URL field in Chrome, I get a full JSON back.

Remark 2: I am using the Zoommtg.generateSignature, I didn’t write my own


Thanks !

Anyone ?

Hi Pierre,

Please make sure you generate the correct Signature before join a meeting.



Hi Wei,


Thank you for your answer.

Here is how I generate my signature:

var signature = ZoomMtg.generateSignature({
  meetingNumber: meeting\_number,
  apiKey: API\_KEY,
  apiSecret: API\_SECRET,
  role: 0,
  success: o =\> {


Do you see anything wrong?

Hi Pierre,

Thank you for your feedback.

Can you provide the meeting number and when you joined the meeting via SDK?

We will check this issue.


Hi Eason,

Below is a screenshot of a test I just did. You can see that one of the console log contains the exact date printed when I tried and the meeting number associated.

Thanks !

Hey, any chance to look at it ?


Thank you,

Hi Pierre,

We found that the signature time stamp is invalid, and please change your PC timezone to UTC and try again.

If failed again, please send the screenshot to me. Thanks!

Hi Eason,

I have the same issue, screenshot attached:

So is it simply the generateSignature doing something wrong ?

Hi Pierre,

Sorry for late reply.

Actually, it’s really caused by wrong signature and time stamp is invalid. Strangely, others has no this issue with the same method.

We recommend that you use the following method in GitHub firstly,

Now we haven’t publish the js method and maybe it still has some problems.

Then we will have a double check and fix it ASAP.


This issue is still there.
I am using the code from ‘’ to test the web-SDK.
When I try to join a meeting I am getting the error “The signature has expired.”

Operating System: Windows 10
Browser: Chrome Version 72.0.3626.119

Hi @wagish.sharma long story short, it has to do with the time() function used in the signature generation code, you’ll have to make sure it matches your browser time, you can try changing the mili seconds getting subtracted out of time() function i.e 30000. In my case (Pakistan timezone) this code worked (for generateSignature in PHP).

$time = time() * 1000 - 60000;

Hi @azaz.nuces,

Thanks for following up and yes you would need to subtrack the time in milliseconds, please see our updated signature sample code here[1].

1 -


@azaz.nuces what do you mean “matches your browser time”? The server is generating the signature based on UTC, what’s the user’s browser timezone have to do with it since they don’t have access to modify the signature? I’m guessing you did not mean to say browser time.

Hey @cinemed,

What possibly happened, or what happens to developers using the sample app to create the Web SDK signature is they are creating the signature locally / client side on their own machine which is in a certain timezone.

They need to generate the signature server side which like you said should be UTC.


me too how do i fix this

Hey @gonzalesramme123,

Please create a new topic and fill out the post template so we have enough info to help. :slight_smile: