I have an API that fetches data from the web.tlink.io server, saves it on my Hostinger database, and sends it to https://dustcontroldpcc.delhi.gov.in/api/AirQuality/PostSensorData. Currently, I am using the Cloud Startup plan on Hostinger, which supports around 40 APIs on my server.
`<?php
$url = “https://app.dtuip.com/oauth/token?grant_type=password&username=@gmail.com&password=“;
/// AUTH AND TOKEN
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
$token = “*****************************************************************”; // Base64 Converted Code
$headers = [“Authorization:Basic $token”, “Content-Type: application/json”];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
$dataupper = json_decode($result, true);
curl_close($ch);
/// GET THE DATA FORM MACHINE
if (!empty($dataupper["access_token"])) {
$token4th = $dataupper["access_token"];
$url2 = "https://app.dtuip.com/api/device/getDeviceSensorDatas";
$data = json_encode([
"userId" => "*****",
"groupId" => "",
"isDelete" => 0,
"isLine" => 1,
"isAlarms" => 0,
"currPage" => 1,
"pageSize" => 10,
]);
$tid = "**********************";
$cha = curl_init();
curl_setopt($cha, CURLOPT_URL, $url2);
$headers = [
"Content-Type: application/json",
"tlinkAppId: $tid",
"Authorization: Bearer $token4th",
"Cache-Control: no-cache",
"Connection: keep-alive",
];
curl_setopt($cha, CURLOPT_POSTFIELDS, $data); //Post Fields
curl_setopt($cha, CURLOPT_HTTPHEADER, $headers);
curl_setopt($cha, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec($cha);
$datag = json_decode($server_output);
echo $datag->dataList[0]->sensorsList[0]->sensorName;
echo " : ";
echo $pm2 = $datag->dataList[0]->sensorsList[0]->value;
echo $datag->dataList[0]->sensorsList[1]->sensorName;
echo " : ";
echo $pm10 = $datag->dataList[0]->sensorsList[1]->value;
if (empty($pm2)){
$pm2 = "--";
}
if (empty($pm10)){
$pm10 = "--";
}
if ($pm2 != "--" && $pm10 != "--") {
date_default_timezone_set("Asia/Kolkata"); //India time (GMT+5:30);
$datex = date("d-m-Y"); // time in India
$ctime = date("h:i:s A");
//==================MY CONNECTIONS =============================
$servername = "localhost";
$username = "****";
$password = "******";
$dbname = "********";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
//Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "INSERT INTO device65 (pm25, pm10, datee, ctime) VALUES ('$pm2', '$pm10', '$datex', '$ctime' )";
if (mysqli_query($conn, $sql)) {
echo "New record created successfully";
} else {
echo "Error: at SQL " . $sql . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);
// SEND DATA
$url3 = "https://dustcontroldpcc.delhi.gov.in/api/AirQuality/PostSensorData";
$param = [
"Token" => "**********",
"Siteid" => "**",
"PM10" => $pm10,
"PM25" => $pm2
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url3);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($param));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$headers = ["Content-Type: application/json"];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
// Disable SSL verification for testing purposes
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error: ' . curl_error($ch);
} else {
$response = json_decode($result, true);
if ($response && isset($response['StatusCode'])) {
$statusCode = $response['StatusCode'];
$resultStatus = $response['ResultStatus'];
$resultMessage = $response['ResultMessage'];
if ($statusCode === '1' && $resultStatus === 'success') {
echo 'Success: ' . $resultMessage;
} else {
echo 'Error: ' . $resultMessage;
}
} else {
echo 'Error: Invalid API response';
}
}
curl_close($ch);
}else{
echo "Device Offline";
}
}
?>`
I need a more professional server solution where I can host 200+ APIs on a single server.