I have started with the git repo: meetingsdk-web-sample from zoom
I am trying to get a meeting to show up in a web browser. I have read all of the problems and gotchas that go along with the JWT and I have made sure I am using the Client ID and Client Secret from the Zoom App I created in the Marketplace.
I even tried to join a meeting using the signature generated right from Zoom’s Test SDK generator and have followed the JWT creation algorithms required and verified their signatures on jwt_dot_io.
All my attempts to join the meeting are met with a 3712 invalid signature error. I even tried using a few wordpress plugins like Buddyboss and video-conferencing-with-zoom-api and their plugins produce the same results which tells me that my app in the market place is not set correctly. There are so many different versions of the apps and a lot of outdated documentation to sift through but no answers are found to get my Client ID and Client secret to pass the signature test when starting a meeting in a web browser using the Meetings SDK.
I have tested multiple accounts, multiple apps, multiple meetings to no avail.
What can I try next since I am out of options?
Hi @Christopher, welcome to the community.
To clarify:
Make sure you’ve created a General app (Meeting SDK) in the Zoom Marketplace — not an OAuth, Server-to-Server OAuth, or JWT app. Only the General app gives you the correct Client ID and Client Secret required to generate a valid signature.
Follow the previous topic here for proper steps to get your credentials and generate a signature:
How to properly get Client ID/Secret and generate Meeting SDK signature (Not able to find my SDK Key - #3 by freelancer.nak)
If you’re using Node.js, here’s a working signature generator using jsrsasign
:
const KJUR = require('jsrsasign');
function generateSignature({ meeting, admin }) {
const iat = Math.round(new Date().getTime() / 1000) - 30;
const exp = iat + 60 * 60 * 2;
const oHeader = {
alg: 'HS256',
typ: 'JWT'
};
const oPayload = {
sdkKey: process.env.ZOOM_CLIENT_ID,
mn: meeting.id,
role: admin ? 1 : 0,
iat: iat,
exp: exp,
appKey: process.env.ZOOM_CLIENT_ID,
tokenExp: iat + 60 * 60 * (process.env.MEETING_DURATION_IN_HOURS || 3)
};
const sHeader = JSON.stringify(oHeader);
const sPayload = JSON.stringify(oPayload);
const signature = KJUR.jws.JWS.sign('HS256', sHeader, sPayload, process.env.ZOOM_CLIENT_SECRET);
return signature;
}
module.exports = {
generateSignature
};
Let us know if you want help reviewing your setup. You’re close — just make sure the app type and credentials are correct.
Naeem, Thank you for taking the time to respond. Since I last wrote in, I have created a brand new Zoom account using my personal email with a brand new set of credentials for the Client ID and Client Secret. I followed the steps to create the App in the Marketplace per your link to [Not able to find my SDK Key - #3 by freelancer.nak]
Lo and behold, everything worked as expected. I went back to my corporate zoom account, created a brand new app in the marketplace with new credentials and set it up the same exact way it was on my personal account and I am still getting the signature invalid error. So there must be some global setting or overarching reason that my corporate zoom accounts do not allow for using the Meeting SDK with the Client ID and Client Secrect credentials. Do you recommend I fill out a support ticket with Zoom to have them chase down the problem? I really need this to work with my corporate zoom account since that is where we have our subscription and are able to host multiple meetings and webinars at the same time.