Articles on: Classic Remote Management - REST API

Example: PHP Device API (Classic Remote Management)

Sample code to consume the Device API using PHP.

$API_KEY = 'YOUR API KEY';
$SECRET = 'YOUR SECRET KEY';
        
//GET ALL DEVICES
GetDevice(null);
//GET DEVICE BY ID
GetDevice(1);
function GetDevice($deviceID) {  
    global $API_KEY;
    global $SECRET;  
    $apiHost = "https://www.kbremote.net"; //API HOST
    $apiPath = "api"; //PATH TO API
    $apiFunction = "device"; //API FUNCTION NAME
    $url = $apiHost . "/" . $apiPath . "/" . $apiFunction;
     if (!is_null($deviceID))
         $url = $url . "/" . $deviceID;
    //GET UTC TIME
    $timeStamp = gmdate("Y-m-d H:i:s");
    //CREATE MESSAGE IN STANDARD FORMAT TO HASH
    $message = "GET" . $timeStamp . "/" . $apiPath . "/" . $apiFunction;
     if (!is_null($deviceID))
         $message = $message . "/" . $deviceID;
    $hash_mac = hash_hmac('sha256', $message, $SECRET, true);
    $messageHash = base64_encode($hash_mac);
    $headers = array(
        'Authentication: ' . $API_KEY . ":" . $messageHash,
        'Timestamp:  ' . $timeStamp
    );
    // INITIALIZE CURL HANDLE
    $ch = curl_init();
    // SET URL
    curl_setopt( $ch, CURLOPT_URL, $url );
    // SET CUSTOM HEADERS
    curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers );
    //GET RESPONSE BACK AS STRING
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
    // SEND REQUEST
    $result = curl_exec( $ch );
            
    //GET HTTP RESPONSE CODE
    $responseCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
    
    // DISPLAY ERRORS IF YOU WISH    
    if (curl_errno($ch)) {
        echo curl_error( $ch );
    }
    //CLOSE CURL HANDLE
    curl_close($ch);
    
    
    //CHECK IF REQUEST WAS SUCCESSFUL
    if ($responseCode == "200") { 
        $json = json_decode($result);
        if (is_null($deviceID)) {
            foreach ($json as $key => $jsons) { // LOOP THROUGH DEVICES AND VALUES
                 foreach($jsons as $key => $value) {
                     echo $key . ': ';
                     echo $value;
                     echo '<br>';
                }
                echo '<br><br>';
            }
        }
        else
        {
            foreach ($json as $key => $value) { //JUST LOOP THROUGH VALUES IF ONLY EXPECTING SINGLE DEVICE
                     echo $key . ': ';
                     echo $value;
                     echo '<br>';
            }
        }
    }
    else {
        echo "Error HTTP Response Code " . $responseCode;
    }
}

Updated on: 10/07/2024

Was this article helpful?

Share your feedback

Cancel

Thank you!