@@ -4,29 +4,39 @@ window.addEventListener("DOMContentLoaded", function (event) {
4
4
} ) ;
5
5
6
6
function websdkready ( ) {
7
- var testTool = window . testTool ;
7
+ const testTool = window . testTool ;
8
8
if ( testTool . isMobileDevice ( ) ) {
9
- vConsole = new VConsole ( ) ;
9
+ const vConsole = new VConsole ( ) ;
10
10
}
11
- console . log ( "checkSystemRequirements" ) ;
12
- console . log ( JSON . stringify ( ZoomMtg . checkSystemRequirements ( ) ) ) ;
11
+ const authEndpoint = "http://127.0.0.1:4000" ;
12
+ let CLIENT_ID = "YOUR_CLIENT_ID_OR_SDK_KEY" ;
13
13
14
- // it's option if you want to change the MeetingSDK-Web dependency link resources. setZoomJSLib must be run at first
15
- // ZoomMtg.setZoomJSLib("https://source.zoom.us/{VERSION}/lib", "/av"); // default, don't need call it
16
- // ZoomMtg.setZoomJSLib("https://jssdk.zoomus.cn/{VERSION}/lib", "/av"); // china cdn option
17
- ZoomMtg . preLoadWasm ( ) ; // pre download wasm file to save time.
18
-
19
- var CLIENT_ID = "YOUR_CLIENT_ID_OR_SDK_KEY" ;
20
- /**
21
- * NEVER PUT YOUR ACTUAL SDK SECRET OR CLIENT SECRET IN CLIENT SIDE CODE, THIS IS JUST FOR QUICK PROTOTYPING
22
- * The below generateSignature should be done server side as not to expose your SDK SECRET in public
23
- * You can find an example in here: https://developers.zoom.us/docs/meeting-sdk/auth/#signature
24
- */
25
- var CLIENT_SECRET = "YOUR_CLIENT_SECRET_OR_SDK_SECRET" ;
14
+ //https://developers.zoom.us/docs/meeting-sdk/auth/#signature
15
+ async function getSignature ( meetingNumber , role ) {
16
+ try {
17
+ const response = await fetch ( authEndpoint , {
18
+ method : "POST" ,
19
+ headers : { "Content-Type" : "application/json" } ,
20
+ body : JSON . stringify ( {
21
+ meetingNumber : meetingNumber ,
22
+ role : role ,
23
+ } ) ,
24
+ } ) ;
25
+ const data = await response . json ( ) ;
26
+ console . log ( data ) ;
27
+ if ( data . sdkKey ) {
28
+ CLIENT_ID = data . sdkKey ;
29
+ }
30
+ return data . signature ;
31
+ } catch ( error ) {
32
+ console . log ( error ) ;
33
+ throw error ;
34
+ }
35
+ }
26
36
27
37
// some help code, remember mn, pwd, lang to cookie, and autofill.
28
38
document . getElementById ( "display_name" ) . value =
29
- "CDN" +
39
+ "CDN# " +
30
40
ZoomMtg . getWebSDKVersion ( ) [ 0 ] +
31
41
testTool . detectOS ( ) +
32
42
"#" +
@@ -55,11 +65,11 @@ function websdkready() {
55
65
document
56
66
. getElementById ( "meeting_number" )
57
67
. addEventListener ( "input" , function ( e ) {
58
- var tmpMn = e . target . value . replace ( / ( [ ^ 0 - 9 ] ) + / i, "" ) ;
68
+ let tmpMn = e . target . value . replace ( / ( [ ^ 0 - 9 ] ) + / i, "" ) ;
59
69
if ( tmpMn . match ( / ( [ 0 - 9 ] { 9 , 11 } ) / ) ) {
60
70
tmpMn = tmpMn . match ( / ( [ 0 - 9 ] { 9 , 11 } ) / ) [ 1 ] ;
61
71
}
62
- var tmpPwd = e . target . value . match ( / p w d = ( [ \d , \w ] + ) / ) ;
72
+ const tmpPwd = e . target . value . match ( / p w d = ( [ \d , \w ] + ) / ) ;
63
73
if ( tmpPwd ) {
64
74
document . getElementById ( "meeting_pwd" ) . value = tmpPwd [ 1 ] ;
65
75
testTool . setCookie ( "meeting_pwd" , tmpPwd [ 1 ] ) ;
@@ -84,9 +94,9 @@ function websdkready() {
84
94
// click join meeting button
85
95
document
86
96
. getElementById ( "join_meeting" )
87
- . addEventListener ( "click" , function ( e ) {
97
+ . addEventListener ( "click" , async function ( e ) {
88
98
e . preventDefault ( ) ;
89
- var meetingConfig = testTool . getMeetingConfig ( ) ;
99
+ const meetingConfig = testTool . getMeetingConfig ( ) ;
90
100
if ( ! meetingConfig . mn || ! meetingConfig . name ) {
91
101
alert ( "Meeting number or username is empty" ) ;
92
102
return false ;
@@ -95,24 +105,29 @@ function websdkready() {
95
105
testTool . setCookie ( "meeting_number" , meetingConfig . mn ) ;
96
106
testTool . setCookie ( "meeting_pwd" , meetingConfig . pwd ) ;
97
107
98
- var signature = ZoomMtg . generateSDKSignature ( {
99
- meetingNumber : meetingConfig . mn ,
100
- sdkKey : CLIENT_ID ,
101
- sdkSecret : CLIENT_SECRET ,
102
- role : meetingConfig . role ,
103
- success : function ( res ) {
104
- console . log ( res ) ;
105
- meetingConfig . signature = res ;
106
- meetingConfig . sdkKey = CLIENT_ID ;
107
- var joinUrl = "/meeting.html?" + testTool . serialize ( meetingConfig ) ;
108
- console . log ( joinUrl ) ;
109
- window . open ( joinUrl , "_blank" ) ;
110
- } ,
111
- } ) ;
108
+ try {
109
+ const signature = await getSignature (
110
+ meetingConfig . mn ,
111
+ meetingConfig . role
112
+ ) ;
113
+ console . log ( signature ) ;
114
+ meetingConfig . signature = signature ;
115
+ meetingConfig . sdkKey = CLIENT_ID ;
116
+ const joinUrl = "/meeting.html?" + testTool . serialize ( meetingConfig ) ;
117
+ console . log ( joinUrl ) ;
118
+ window . open ( joinUrl , "_blank" ) ;
119
+
120
+ // Now you can use meetingConfig.signature
121
+
122
+ // Add your code to join the meeting here
123
+ } catch ( error ) {
124
+ console . error ( "Failed to get signature" , error ) ;
125
+ alert ( "Failed to get signature" ) ;
126
+ }
112
127
} ) ;
113
128
114
129
function copyToClipboard ( elementId ) {
115
- var aux = document . createElement ( "input" ) ;
130
+ const aux = document . createElement ( "input" ) ;
116
131
aux . setAttribute (
117
132
"value" ,
118
133
document . getElementById ( elementId ) . getAttribute ( "link" )
@@ -124,30 +139,23 @@ function websdkready() {
124
139
}
125
140
126
141
// click copy jon link button
127
- window . copyJoinLink = function ( element ) {
128
- var meetingConfig = testTool . getMeetingConfig ( ) ;
142
+ window . copyJoinLink = async function ( element ) {
143
+ const meetingConfig = testTool . getMeetingConfig ( ) ;
129
144
if ( ! meetingConfig . mn || ! meetingConfig . name ) {
130
145
alert ( "Meeting number or username is empty" ) ;
131
146
return false ;
132
147
}
133
- var signature = ZoomMtg . generateSDKSignature ( {
134
- meetingNumber : meetingConfig . mn ,
135
- sdkKey : CLIENT_ID ,
136
- sdkSecret : CLIENT_SECRET ,
137
- role : meetingConfig . role ,
138
- success : function ( res ) {
139
- console . log ( res . result ) ;
140
- meetingConfig . signature = res . result ;
141
- meetingConfig . sdkKey = CLIENT_ID ;
142
- var joinUrl =
143
- testTool . getCurrentDomain ( ) +
144
- "/meeting.html?" +
145
- testTool . serialize ( meetingConfig ) ;
146
- document
147
- . getElementById ( "copy_link_value" )
148
- . setAttribute ( "link" , joinUrl ) ;
149
- copyToClipboard ( "copy_link_value" ) ;
150
- } ,
151
- } ) ;
148
+
149
+ const signature = await getSignature ( meetingConfig . mn , meetingConfig . role ) ;
150
+ console . log ( signature ) ;
151
+ meetingConfig . signature = signature ;
152
+ meetingConfig . sdkKey = CLIENT_ID ;
153
+
154
+ var joinUrl =
155
+ testTool . getCurrentDomain ( ) +
156
+ "/meeting.html?" +
157
+ testTool . serialize ( meetingConfig ) ;
158
+ document . getElementById ( "copy_link_value" ) . setAttribute ( "link" , joinUrl ) ;
159
+ copyToClipboard ( "copy_link_value" ) ;
152
160
} ;
153
161
}
0 commit comments