· 5 years ago · Aug 25, 2020, 07:16 AM
1import React, { useEffect } from 'react';
2import { ZoomMtg } from '@zoomus/websdk';
3// import { Link as RouterLink, withRouter } from 'react-router-dom';
4
5let apiKeys = {
6 apiKey: process.env.REACT_APP_ZOOM_API_KEY,
7 apiSecret: process.env.REACT_APP_ZOOM_API_SECRET_KEY
8};
9let meetConfig = {
10 apiKey: apiKeys.apiKey,
11 meetingNumber: '71606890513',
12 userName: 'Example',
13 userEmail: 'example@example.com', // must be the attendee email address
14 passWord: 'TFaB57',
15 role: 0
16};
17const LiveCall = () => {
18 const joinMeeting = (signature, meetConfig) => {
19 ZoomMtg.init({
20 leaveUrl: 'https://zoom.us/',
21 isSupportAV: true,
22 success: function (success) {
23 console.log('Init Success ', success);
24 ZoomMtg.join({
25 meetingNumber: meetConfig.meetingNumber,
26 userName: meetConfig.userName,
27 signature: signature,
28 apiKey: meetConfig.apiKey,
29 passWord: meetConfig.passWord,
30
31 success: (success) => {
32 console.log(success);
33 },
34
35 error: (error) => {
36 console.log(error);
37 }
38 });
39 }
40 });
41 };
42
43 useEffect(() => {
44 ZoomMtg.setZoomJSLib('https://source.zoom.us/1.7.10/lib', '/av');
45 ZoomMtg.preLoadWasm();
46 ZoomMtg.prepareJssdk();
47
48 /**
49 * You should not visible api secret key on frontend
50 * Signature must be generated on server
51 * https://marketplace.zoom.us/docs/sdk/native-sdks/web/essential/signature
52 */
53 ZoomMtg.generateSignature({
54 meetingNumber: meetConfig.meetingNumber,
55 apiKey: meetConfig.apiKey,
56 apiSecret: apiKeys.apiSecret,
57 role: meetConfig.role,
58 success: function (res) {
59 console.log('res', res);
60
61 setTimeout(() => {
62 joinMeeting(res.result, meetConfig);
63 }, 1000);
64 }
65 });
66 }, []);
67
68 // return <div className="LiveCall">Zoom Testing</div>;
69
70 return (
71 <div>
72 <p> Zoom testing</p>
73 </div>
74 );
75};
76
77export default LiveCall;
78