Need help on this PHP. If someone can fix this for me please.
https://drive.google.com/drive/folders/1Zswnlp4qwMGM31numcbDKoDZRjXm-uSx?usp=sharing
<?php
require_once ("config.php");
if (file_exists("token.json") && file_get_contents("token.json") != "")
{
$tok_time = file_get_contents("token_expiry.txt");
$ref_time = file_get_contents("refresh_token_expiry.txt");
if (time() > $tok_time && time() > $ref_time)
{
unlink("token.json");
unlink("token_expiry.txt");
unlink("refresh_token_expiry.txt");
$url = BASE_URL . "/restapi/oauth/authorize?response_type=code&client_id=" . CLIENT_ID . "&redirect_uri=" . RED_URI;
header("Location: " . $url);
exit();
}
else if (time() > $tok_time && time() < $ref_time)
{
$response = json_decode(file_get_contents("token.json") , true);
$refresh_token = $response['refresh_token'];
$response = get_Access_token_by_refresh_token($refresh_token);
$token = $response['access_token'];
file_put_contents("token.json", json_encode($response));
file_put_contents("token_expiry.txt", time() + $response['expires_in']);
file_put_contents("refresh_token_expiry.txt", time() + $response['refresh_token_expires_in']);
}
else
{
$response = json_decode(file_get_contents("token.json") , true);
$token = $response['access_token'];
}
}
else
{
if (isset($_GET['code']) && $_GET['code'] != "")
{
$code = $_GET['code'];
$url = BASE_URL . "/restapi/oauth/token";
$headers = array();
$headers[] = "Content-Type: application/x-www-form-urlencoded";
$headers[] = "Accept: application/json";
$headers[] = "Authorization: Basic " . base64_encode(CLIENT_ID . ":" . APP_SECRET);
$data = array(
"grant_type" => "authorization_code",
"code" => $code,
"redirect_uri" => RED_URI,
"client_id" => CLIENT_ID
);
$response = curlPost($url, $headers, $data, false);
$token = $response['access_token'];
file_put_contents("token.json", json_encode($response));
file_put_contents("token_expiry.txt", time() + $response['expires_in']);
file_put_contents("refresh_token_expiry.txt", time() + $response['refresh_token_expires_in']);
$sub = 2 * 24 * 60 * 60;
$expiry = $response['refresh_token_expires_in'] - $sub;
file_put_contents("expiry.txt", time() + $expiry);
$url = "http" . (($_SERVER['SERVER_PORT'] == 443) ? "s://" : "://") . $_SERVER['HTTP_HOST'] . $_SERVER["PHP_SELF"];
header("Location: " . $url);
}
else
{
$url = BASE_URL . "/restapi/oauth/authorize?response_type=code&client_id=" . CLIENT_ID . "&redirect_uri=" . RED_URI;
header("Location: " . $url);
exit();
}
}
echo "<pre>";
$response = subscribe($token);
print_r($response);
$subscription_id = $response['id'];
$response = readPresence($token);
print_r($response);
$response = getSubscriptionid($token, $subscription_id);
print_r($response);
$response = getSubscription($token);
print_r($response);
$response = renewSubscription($token, $subscription_id);
print_r($response);
mysql_close();
function getSubscriptionid($token, $id)
{
$url = BASE_URL . "/restapi/v1.0/subscription/$id";
$headers = array();
$headers[] = "Content-Type: application/json";
$headers[] = "Authorization: Bearer " . $token;
$headers[] = "Accept: application/json";
$response = curlGet($url, $headers);
return $response;
}
function curlPost($url, $header, $data, $type)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_POST, true);
if ($type)
{
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
}
else
{
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
}
$result = curl_exec($ch);
$status_code = curl_getinfo($ch);
curl_close($ch);
$responce = json_decode($result, true);
return ($responce);
}
function curlGet($url, $header)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
$result = curl_exec($ch);
$status_code = curl_getinfo($ch);
curl_close($ch);
$responce = json_decode($result, true);
return ($responce);
}
function get_Access_token_by_refresh_token($get_refresh_token)
{
$url = BASE_URL . "/restapi/oauth/token";
$headers = array();
$auth = base64_encode(CLIENT_ID . ":" . APP_SECRET);
$headers[] = "Content-Type: application/x-www-form-urlencoded";
$headers[] = "Authorization: Basic " . $auth;
$data = array(
"grant_type" => "refresh_token",
"refresh_token" => $get_refresh_token
);
$response = curlPost($url, $headers, $data, false);
return $response;
}
/*
Get Token
*/
function subscribe($token)
{
$url = BASE_URL . "/restapi/v1.0/subscription";
$headers = array();
$headers[] = "Content-Type: application/json";
$headers[] = "Authorization: Bearer " . $token;
$headers[] = "Accept: application/json";
$data = array(
"eventFilters" => array(
"/restapi/v1.0/account/~/presence?detailedTelephonyState=true"
) ,
"deliveryMode" => array(
"transportType" => "WebHook",
"address" => "https://tbmslive.com/ringcentral/safeforu/webhook.php"
)
);
$response = curlPost($url, $headers, json_encode($data) , true);
return $response;
}
function readPresence($token)
{
$url = BASE_URL . "/restapi/v1.0/account/~/extension/~/presence";
$headers = array();
$headers[] = "Content-Type: application/json";
$headers[] = "Authorization: Bearer " . $token;
$headers[] = "Accept: application/json";
$response = curlGet($url, $headers);
return $response;
}
function getSubscription($token)
{
$url = BASE_URL . "/restapi/v1.0/subscription";
$headers = array();
$headers[] = "Content-Type: application/json";
$headers[] = "Authorization: Bearer " . $token;
$headers[] = "Accept: application/json";
$response = curlGet($url, $headers);
return $response;
}
function renewSubscription($token, $id)
{
$url = BASE_URL . "/restapi/v1.0/subscription/$id/renew";
$headers = array();
$headers[] = "Content-Type: application/json";
$headers[] = "Authorization: Bearer " . $token;
$headers[] = "Accept: application/json";
$data = array();
$response = curlPost($url, $headers, json_encode($data) , true);
return $response;
}