Meeting SDK Integration in web with OAuth 2.0 and SDK app type

We are currently working on Learning Management System and have this feature in which we need to be able to create meetings from the instructor account using Zoom and students need to be able to join this meeting.

For this purpose, we have created a OAuth (account level) app in the zoom-market place. Using this, we are able to authorize our app from the admin account once.
We are successfully able to create Zoom meetings using APIs.

Problem Description:
The issue now is that after the creation of the meeting, we send the meeting link to instructor and students but the link will open in zoom client app.
We need this meeting in our web app.

For this, we have created another SDK app that will use OAuth for Authorization.
SDK app basically requires individual users to authorize.

Problem 1: Is there any way around so that students do not need to authorize but can access the SDK to attend the meeting?

Problem 2: We are using Python/Django as our backend, and to generate the signature in the backend , we are using this code snippet:

def generateSignature(data):
import time
from jose import jws

ts = int(round(time.time() * 1000)) - 30000
oPayLoad = {
    'sdkKey': ZOOM_SDK_KEY,
    'mn': data['meetingNumber'],
    'role': data['role'],
    'iat': ts,
    'appKey': ZOOM_SDK_KEY,
signature = jws.sign({'payload': oPayLoad}, ZOOM_SDK_SECRET, algorithm='HS256')
return signature

def getSignature(request):
data = {
‘meetingNumber’: request.GET.get(‘meetingNumber’),
‘role’: request.GET.get(‘role’)
signature = generateSignature(data)
return JsonResponse({‘result’: signature}, status=200)

As per the docs, it has provided example using only Node.js for SDK App Type.

Generate Signature (

Currently, my code generates this error.
Joining meeting timeout. Fail to join the meeting.

Generating Signature and Joining Zoom Meeting is working well when using zoom CDN example i.e.
var signature = ZoomMtg.generateSDKSignature({
sdkKey: SDK_KEY,
sdkSecret: SDK_SECRET,
role: meetingConfig.role,
success: function (res) {
meetingConfig.signature = res.result;
meetingConfig.sdkKey = SDK_KEY;
var joinUrl = “/zoom/meeting?” + testTool.serialize(meetingConfig);
console.log(joinUrl);, “_blank”);
Kindly suggest.
Thank you.

Can you share how meetings are configured? Are “only Authenticated Users” can join feature enabled?

Have you considered the following workflow:

  1. Registering the students with Add a webinar registrant API:

Add a webinar registrant

  1. Then send them a unique registration join link to each student. From here, can you design your own follow for how students can access the SDK to attend the meeting,
  "id": "iFxeBPYun6SAiWUzBcEkX",
  "join_url": "",  <-- **The URL the registrant can use to join the webinar.**
  "registrant_id": "fdgsfh2ey82fuh",
  "start_time": "2021-07-13T21:44:51Z",
  "topic": "My Webinar",
  "occurrences": [
      "duration": 60,
      "occurrence_id": "1648194360000",
      "start_time": "2022-03-25T07:46:00Z",
      "status": "available"

To confirm, are you saying the getSignature function only works when using the CDN?