Have you tried to search forum and GitHub. There are some PHP threads out there, so you can try to ask in one of those.
Dear Anton, One doubt.
I haven't found any good example posts here in forum and GitHub, However my doubt is.
Say I manage to send a command via web-services., How do I handle or read the response from the command I sent.
-James
Usually you just receive a message from device later as a confirmation.
Try this.
class traccar { public static $host='http://localhost:8082'; private static $adminEmail='admin'; private static $adminPassword='admin'; public static $cookie; public static function loginAdmin() { return self::login(self::$adminEmail,self::$adminPassword); } public static function register($name,$email,$password,$cookie) { $data='{"name":"'.$name.'","email":"'.$email.'","password":"'.$password.'"}'; return self::curl('/api/users', 'POST',$cookie ,$data,array('Content-Type: application/json')); } public static function login($email,$password) { $data='email='.$email.'&password='.$password; return self::curl('/api/session', 'POST','' ,$data,array('Content-Type: application/x-www-form-urlencoded')); } public static function updateUser($id,$name,$email,$password,$cookie) { $data='{"id":'.$id.',"name":"'.$name.'","email":"'.$email.'","readonly":false,"admin":false,"map":"","distanceUnit":"","speedUnit":"","latitude":0,"longitude":0,"zoom":0,"twelveHourFormat":false,"password":"'.$password.'"}'; return self::curl('/api/users/'.$id, 'PUT',$cookie ,$data,array('Content-Type: application/json')); } public static function deleteUser($id,$name,$email,$cookie) { $data='{"id":'.$id.',"name":"'.$name.'","email":"'.$email.'","readonly":false,"admin":false,"map":"","distanceUnit":"","speedUnit":"","latitude":0,"longitude":0,"zoom":0,"twelveHourFormat":false,"password":""}'; return self::curl('/api/users/'.$id, 'DELETE',$cookie ,$data,array('Content-Type: application/json')); } public static function addDevice($name,$uniqueId,$cookie) { $data='{"id":-1,"name":"'.$name.'","uniqueId":"'.$uniqueId.'","status":"","lastUpdate":null,"groupId":0}'; return self::curl('/api/devices', 'POST',$cookie ,$data,array('Content-Type: application/json')); } public static function editDevice($id,$name,$uniqueId,$cookie) { $data='{"id":'.$id.',"name":"'.$name.'","uniqueId":"'.$uniqueId.'","status":"","lastUpdate":null,"groupId":0}'; return self::curl('/api/devices/'.$id, 'PUT',$cookie ,$data,array('Content-Type: application/json')); } public static function deleteDevice($id,$name,$uniqueId,$cookie) { $data='{"id": '.$id.', "name": "'.$name.'", "uniqueId": "'.$uniqueId.'", "status": "", "lastUpdate": null, "groupId": 0, "positionId": 0}'; return self::curl('/api/devices/'.$id, 'DELETE',$cookie ,$data,array('Content-Type: application/json')); } public static function addDevicePermissions($userId,$deviceId,$cookie) { $data='{"userId": '.$userId.', "deviceId": '.$deviceId.'}'; return self::curl('/api/permissions/devices', 'POST',$cookie ,$data,array('Content-Type: application/json')); } public static function deleteDevicePermissions($userId,$deviceId,$cookie) { $data='{"userId": '.$userId.', "deviceId": '.$deviceId.'}'; return self::curl('/api/permissions/devices', 'DELETE',$cookie ,$data,array('Content-Type: application/json')); } public static function logout($cookie) { return self::curl('/api/session', 'DELETE',$cookie ,'',array('Content-Type: application/x-www-form-urlencoded')); } public static function periodicReporting($deviceId,$frequency,$unit,$cookie) { $data='{"deviceId": '.$deviceId.', "type": "positionPeriodic", "id": -1, "attributes": {"frequency": '.$frequency*$unit.'}}'; return self::curl('/api/commands', 'POST',$cookie ,$data,array('Content-Type: application/json')); } public static function stopReporting($deviceId,$cookie) { $data='{"deviceId":'.$deviceId.',"type":"positionStop","id":-1}'; return self::curl('/api/commands', 'POST',$cookie ,$data,array('Content-Type: application/json')); } public static function engineStop($deviceId,$cookie) { $data='{"deviceId":'.$deviceId.',"type":"engineStop","id":-1}'; return self::curl('/api/commands', 'POST',$cookie ,$data,array('Content-Type: application/json')); } public static function engineResume($deviceId,$cookie) { $data='{"deviceId":'.$deviceId.',"type":"engineResume","id":-1}'; return self::curl('/api/commands', 'POST',$cookie ,$data,array('Content-Type: application/json')); } public static function curl($task,$method,$cookie,$data,$header) { $res=new stdClass(); $res->responseCode=''; $res->error=''; $header[]="Cookie: ".$cookie; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, self::$host.$task); curl_setopt($ch, CURLOPT_TIMEOUT, 30); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method); if($method=='POST' || $method=='PUT' || $method=='DELETE') { curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); } curl_setopt($ch, CURLOPT_HTTPHEADER,$header); $data=curl_exec($ch); $size = curl_getinfo($ch, CURLINFO_HEADER_SIZE); if (preg_match('/^Set-Cookie:\s*([^;]*)/mi', substr($data, 0, $size), $c) == 1) self::$cookie = $c[1]; $res->response = substr($data, $size); if(!curl_errno($ch)) { $res->responseCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); } else { $res->responseCode=400; $res->error= curl_error($ch); } curl_close($ch); return $res; } } $t=traccar::login($email,$password); if($t->responseCode=='200') { $traccarCookie = traccar::$cookie; $t = traccar::engineStop($deviceId, $traccarCookie); if($t->responseCode=='200') { echo 'ok'; } else { $response=json_decode($t->response); echo $response->details; } } else echo 'Incorrect email address or password';
Dear @bbeepp
I am gonna try this, this is absolutely amazing by the looks :)
-Thanks a lot.
Dear Anton / All,
Has anybody implemented commands API Via PHP.
I am interested in knowing a little bit on how to issue commands to a particular device via PHP.
What are the parameters to be posted example, such as device id?..
I am using 3.5 version Traccar, However in swagger file I am not able to figure out how or what to do with commands.