-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapi.php
83 lines (72 loc) · 2.91 KB
/
api.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<?php
require_once 'configzoom.php';
require_once 'php-jwt-master/src/BeforeValidException.php';
require_once 'php-jwt-master/src/ExpiredException.php';
require_once 'php-jwt-master/src/SignatureInvalidException.php';
require_once 'php-jwt-master/src/JWT.php';
use \Firebase\JWT\JWT;
function createMeeting($data = array())
{
$post_time = $data['start_date'];
$start_time = gmdate("Y-m-d\TH:i:s", strtotime($post_time));
$createMeetingArr = array();
if (!empty($data['alternative_host_ids']))
{
if (count($data['alternative_host_ids']) > 1)
{
$alternative_host_ids = implode(",", $data['alternative_host_ids']);
}
else
{
$alternative_host_ids = $data['alternative_host_ids'][0];
}
}
$createMeetingArr['topic'] = $data['topic'];
$createMeetingArr['agenda'] = !empty($data['agenda']) ? $data['agenda'] : "";
$createMeetingArr['type'] = !empty($data['type']) ? $data['type'] : 2; //Scheduled
$createMeetingArr['start_time'] = $start_time;
$createMeetingArr['timezone'] = 'Asia/Kolkata ';
$createMeetingArr['password'] = !empty($data['password']) ? $data['password'] : "";
$createMeetingArr['duration'] = !empty($data['duration']) ? $data['duration'] : 60;
$createMeetingArr['settings'] = array(
'join_before_host' => !empty($data['join_before_host']) ? true : false,
'host_video' => !empty($data['option_host_video']) ? true : false,
'participant_video' => !empty($data['option_participants_video']) ? true : false,
'mute_upon_entry' => !empty($data['option_mute_participants']) ? true : false,
'enforce_login' => !empty($data['option_enforce_login']) ? true : false,
'auto_recording' => !empty($data['option_auto_recording']) ? $data['option_auto_recording'] : "none",
'alternative_hosts' => isset($alternative_host_ids) ? $alternative_host_ids : ""
);
$request_url = "https://api.zoom.us/v2/users/" . EMAIL_ID . "/meetings";
$token = array(
"iss" => API_KEY,
"exp" => time() + 3600 //60 seconds as suggested
);
$getJWTKey = JWT::encode($token, API_SECRET);
$headers = array(
"authorization: Bearer " . $getJWTKey,
"content-type: application/json",
"Accept: application/json",
);
$fieldsArr = json_encode($createMeetingArr);
$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_URL => $request_url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => $fieldsArr,
CURLOPT_HTTPHEADER => $headers,
));
$result = curl_exec($ch);
$err = curl_error($ch);
curl_close($ch);
if (!$result)
{
return $err;
}
return json_decode($result);
}