Hello,
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.
Currently, my code generates this error.
Joining meeting timeout. Fail to join the meeting.
Note:
Generating Signature and Joining Zoom Meeting is working well when using zoom CDN example i.e.
‘’’
var signature = ZoomMtg.generateSDKSignature({
meetingNumber: meetingConfig.mn,
sdkKey: SDK_KEY,
sdkSecret: SDK_SECRET,
role: meetingConfig.role,
success: function (res) {
console.log(res.result);
meetingConfig.signature = res.result;
meetingConfig.sdkKey = SDK_KEY;
var joinUrl = “/zoom/meeting?” + testTool.serialize(meetingConfig);
console.log(joinUrl);
window.open(joinUrl, “_blank”);
},
});
‘’’
Kindly suggest.
Thank you.