We have created an app that manages Zoom meetings using S2S App, and an embedded integration on our website that loads the Client View, but after upgrading from JWT to SDK Token, the Client View keeps reloading, so the meeting never starts.
What is wrong here?
<asp:Content ID="Content2" runat="server" ContentPlaceHolderID="CphHeaderScriptZone">
<!-- Common for Views Types -->
<script src="https://source.zoom.us/2.14.0/lib/vendor/react.min.js"></script>
<script src="https://source.zoom.us/2.14.0/lib/vendor/react-dom.min.js"></script>
<script src="https://source.zoom.us/2.14.0/lib/vendor/redux.min.js"></script>
<script src="https://source.zoom.us/2.14.0/lib/vendor/redux-thunk.min.js"></script>
<script src="https://source.zoom.us/2.14.0/lib/vendor/lodash.min.js"></script>
</asp:Content>
<asp:Content runat="server" ContentPlaceHolderID="CphFreeContainerZone">
<asp:HiddenField ID="HdfMeetingTopic" runat="server" />
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="CphWorkspaceZone" runat="Server">
<div id="zoomMeetingRoomArgs" class="mdf-zoomws-menu">
<div id="zmmtg-root" style="display: flex;"></div>
<div id="aria-notify-area"></div>
</div>
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="CphBottomScripts" runat="Server">
<!-- For Client View -->
<script src="https://source.zoom.us/zoom-meeting-2.14.0.min.js"></script>
<script type="text/javascript">
//<![CDATA[
$(function() {
if (ZoomMtg) {
ZoomMtg.preLoadWasm();
ZoomMtg.prepareWebSDK();
// loads language files, also passes any error messages to the ui
ZoomMtg.i18n.setSupportLanguage(['en-US', 'es-ES']); <%-- --%>
// The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page.
// According to the Zoom example, this is only necessary if the meeting is with China
ZoomMtg.setZoomJSLib('https://source.zoom.us/2.14.0/lib', '/av');
// Events subscriptions...
ZoomMtg.inMeetingServiceListener('onUserJoin', function (data) {
if (!data) return;
console.log("User Join event: ", data);
});
ZoomMtg.inMeetingServiceListener('onUserLeave', function (data) {
if (!data) return;
console.log("User Leave event: ", data);
});
ZoomMtg.inMeetingServiceListener('onUserIsInWaitingRoom', function (data) {
if (!data) return;
console.log("User Waiting event: ", data);
});
ZoomMtg.inMeetingServiceListener('onMeetingStatus', function (data) {
// {status: 1(connecting), 2(connected), 3(disconnected), 4(reconnecting)}
if (!data) return;
console.log("Meeting Status event: ", data);
});
StartMeeting();
} else {
MDFControl.ToastMessage("<%=Resources.ExceptionResources.UIE0035%>", 3);
}
});
function StartMeeting() {
const signatureToken = '<%=MeetingSignature%>' ;
ZoomMtg.init({
leaveUrl: '<%=LeaveMeetingUrl%>',
isSupportAV: true,
isSupportChat: true,
success: function(/*iRes*/) {
console.log('Init action success: ', iRes);
ZoomMtg.join({
sdkKey: '<%=AuthKey%>',
signature: signatureToken,
meetingNumber: '<%=MeetingNumber%>',
userName: '<%=MeetingUserName%>',
userEmail: '<%=MeetingUserEMail%>',
passWord: '<%=MeetingPassCode%>',
success: function(jRes) {
console.log('Join action success: ', arguments);
},
error: function(eRes) {
console.error("Join action fail! ", eRes);
}
});
},
error: (error) => {
console.error("Init meeting fail! ", error);
}
});
}
Thanks!