Provides a PHP client that can easily make API requests to a MyGeotab server.
You can use composer and run the following command in your repo:
composer require mygeotab-php
This repository requires PHP >=7.1, but if you're going to try integrate this into older versions
then you can look at the code in src
directly.
$api = new Geotab\API("[email protected]", "password", "DatabaseName", "my.geotab.com");
$api->authenticate();
$api->get("Device", ["resultsLimit" => 1], function ($results) {
var_dump($results);
}, function ($error) {
var_dump($error);
});
Instead of using the callback syntax, you can simply use the return result directly. Keep in mind, if an error occurs you won't be informed! It will throw as a MyGeotabException
, so remember to use try & catch.
$toDate = new DateTime();
$fromDate = new DateTime();
$fromDate->modify("-1 month");
try {
$violations = $api->get("DutyStatusViolation", [
"search" => [
"userSearch" => ["id" => "b1"],
"toDate" => $toDate->format("c"), // ISO8601, or could use "2018-11-03 00:53:29.370134"
"fromDate" => $fromDate->format("c")
],
"resultsLimit" => 10
]);
} catch (Exception $e) {
// Handle this or return
}
echo "The driver has " . count($violations) . " violations!";
In the examples
folder, you can see the "Top Speeding Violations" example that was presented in the Dev Channel video. The code is not yet hooked up with the Node server and will likely
have difficulty with PSR, but the code is there and should be easy to understand.
If you have a PHP-CGI handler installed, you can run a web server with
just server.js
in NodeJS. I found this quick and easy on Windows instead of setting up a complex web server.
First, find the php-cgi executable on your machine (e.g. C:\Program Files\PHP\v7.2\php-cgi.exe) and place that in the file. Then run:
npm install
node server.js
Should now visit localhost:8080/sample.php and voila - you're serving PHP from a NodeJS server!