JFIF x x C C " } !1AQa "q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w !1AQ aq"2B #3Rbr{
File "ZoomMeetingController.php"
Full Path: /home2/yvrgircc/public_html/ariseskilltech.com/app/Http/Controllers/ZoomMeetingController.php
File size: 5.25 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace App\Http\Controllers;
use Exception;
use Illuminate\Http\Request;
class ZoomMeetingController extends Controller
{
public static function createToken()
{
$clientId = get_settings('zoom_client_id');
$clientSecret = get_settings('zoom_client_secret');
$accountId = get_settings('zoom_account_id');
$oauthUrl = 'https://zoom.us/oauth/token?grant_type=account_credentials&account_id=' . $accountId;
try {
// Create the Basic Authentication header
$authHeader = 'Basic ' . base64_encode($clientId . ':' . $clientSecret);
$ch = curl_init($oauthUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: ' . $authHeader));
// Execute cURL session and get the response
$response = curl_exec($ch);
// Check if the request was successful (status code 200)
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode == 200) {
$oauthResponse = json_decode($response, true);
$accessToken = $oauthResponse['access_token'];
http_response_code(200);
header('Content-Type: application/json');
return $accessToken;
} else {
echo 'OAuth Request Failed with Status Code: ' . $httpCode . PHP_EOL;
echo $response . PHP_EOL;
return null;
}
} catch (Exception $e) {
echo 'An error occurred: ' . $e->getMessage() . PHP_EOL;
return null;
}
}
public static function createMeeting($topic, $time)
{
$zoom_account_email = get_settings('zoom_account_email');
$token = self::createToken();
// API Endpoint for creating a meeting
$zoomEndpoint = 'https://api.zoom.us/v2/users/me/meetings';
// Meeting data
$meetingData = [
'topic' => $topic,
'schedule_for' => $zoom_account_email,
'type' => 2,
'start_time' => date('Y-m-d\TH:i:s', strtotime($time)),
'duration' => 60,
'timezone' => 'UTC',
'settings' => [
'approval_type' => 2,
'join_before_host' => true,
'jbh_time' => 0,
],
];
// Prepare headers
$headers = [
'Authorization: Bearer ' . $token,
'Content-Type: application/json',
];
// Make POST request to create meeting
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $zoomEndpoint);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($meetingData));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
// JSON response
return $response;
}
public static function updateMeeting($topic, $time, $meetingId)
{
$token = self::createToken();
// API Endpoint for updating a meeting
$zoomEndpoint = 'https://api.zoom.us/v2/meetings/' . $meetingId;
// Meeting data with updated start time
$meetingData = [
'topic' => $topic,
'start_time' => date('Y-m-d\TH:i:s', strtotime($time)),
];
// Prepare headers
$headers = [
'Authorization: Bearer ' . $token,
'Content-Type: application/json',
];
// Make PATCH request to update meeting
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $zoomEndpoint);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH');
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($meetingData));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
// JSON response
return $response;
}
public static function deleteMeeting($meetingId)
{
$token = self::createToken();
// API Endpoint for deleting a meeting
$zoomEndpoint = 'https://api.zoom.us/v2/meetings/' . $meetingId;
// Prepare headers
$headers = [
'Authorization: Bearer ' . $token,
'Content-Type: application/json',
];
// Make DELETE request to delete meeting
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $zoomEndpoint);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
// JSON response
return $response;
}
public static function config()
{
$data['clientId'] = get_settings('zoom_client_id');
$data['clientSecret'] = get_settings('zoom_client_secret');
$data['accountId'] = get_settings('zoom_account_id');
$data['email'] = get_settings('zoom_account_email');
return $data;
}
}