PHPackages                             jhamnerx/gpswox-api - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. jhamnerx/gpswox-api

ActiveLibrary[API Development](/categories/api)

jhamnerx/gpswox-api
===================

Paquete PHP para la API de GPSWOX

0292PHP

Since Dec 19Pushed 4mo ago1 watchersCompare

[ Source](https://github.com/Jhamnerx/gpswox-api)[ Packagist](https://packagist.org/packages/jhamnerx/gpswox-api)[ RSS](/packages/jhamnerx-gpswox-api/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

GPSWox API PHP Client
=====================

[](#gpswox-api-php-client)

Una biblioteca PHP completa para interactuar con la API de GPSWox, un sistema de rastreo GPS.

📦 Instalación
-------------

[](#-instalación)

```
composer require gpswox/api-client
```

🚀 Uso Básico
------------

[](#-uso-básico)

### Inicialización

[](#inicialización)

```
use Gpswox\Wox;

// Con API hash existente
$client = new Wox('https://tu-dominio-gpswox.com/', 'tu-api-hash');

// O hacer login para obtener el API hash
$client = new Wox('https://tu-dominio-gpswox.com/');
$apiHash = $client->login('tu-email@ejemplo.com', 'tu-contraseña');
```

📚 Recursos Disponibles
----------------------

[](#-recursos-disponibles)

Este SDK proporciona acceso completo a más de 150 endpoints de la API de GPSWox, organizados en 17 recursos principales:

### 1. Setup (Configuración)

[](#1-setup-configuración)

Gestiona la configuración de la cuenta de usuario.

```
$setup = $client->setup();

// Obtener datos completos de configuración
$setupData = $setup->getEditSetupData();

// Actualizar configuración
$setup->updateSetupData([
    'lang' => 'es',
    'unit_of_distance' => 'km',
    'timezone_id' => '65'
]);

// Obtener datos de usuario
$userData = $setup->getUserData();

// Cambiar contraseña
$setup->changePassword([
    'old_password' => 'contraseña_antigua',
    'new_password' => 'contraseña_nueva'
]);

// Obtener zonas horarias disponibles
$timezones = $setup->getTimezones();
```

// Obtener unidades de distancia $distanceUnits = $setup-&gt;getDistanceUnits();

// Obtener unidades de capacidad $capacityUnits = $setup-&gt;getCapacityUnits();

// Obtener unidades de altitud $altitudeUnits = $setup-&gt;getAltitudeUnits();

// Obtener información del usuario $userInfo = $setup-&gt;getUserInfo();

// Obtener timezone actual del usuario $currentTimezone = $setup-&gt;getCurrentTimezone(); if ($currentTimezone) { echo "Timezone actual: {$currentTimezone\['value'\]} (ID: {$currentTimezone\['id'\]})"; }

// Obtener opciones de SMS Gateway $smsOptions = $setup-&gt;getSmsGatewayOptions();

// Obtener opciones de horario de verano (DST) $dstOptions = $setup-&gt;getDstOptions();

```

### 2. Device (Dispositivos)

Gestiona dispositivos GPS y sus grupos.

```php
$device = $client->device();

// Listar dispositivos
$devices = $device->listDevices();

// Obtener últimos datos de dispositivos
$latestData = $device->getDevicesLatest();

// Crear dispositivo
$newDevice = $device->createDevice([
    'name' => 'Mi Dispositivo',
    'imei' => '123456789012345'
]);

// Editar dispositivo
$device->editDevice(1, ['name' => 'Dispositivo Actualizado']);

// Gestión de grupos de dispositivos
$groups = $device->getDeviceGroups();
$device->storeDeviceGroup(['name' => 'Flota 1']);

// Media de dispositivos
$media = $device->getDeviceMedia(1);
$file = $device->getDeviceMediaFile(1, 'image.jpg');

```

### 3. History (Historial)

[](#3-history-historial)

Accede al historial de posiciones y mensajes de dispositivos.

```
$history = $client->history();

// Obtener historial
$historyData = $history->getHistory(1, '2023-01-01 00:00:00', '2023-01-31 23:59:59');

// Obtener mensajes
$messages = $history->getHistoryMessages(1, '2023-01-01 00:00:00', '2023-01-31 23:59:59');

// Eliminar posiciones
$history->deleteHistoryPositions(1, '2023-01-01 00:00:00', '2023-01-31 23:59:59');
```

### 4. Alert (Alertas)

[](#4-alert-alertas)

Gestiona alertas y notificaciones del sistema.

```
$alert = $client->alert();

// Listar alertas
$alerts = $alert->getAlerts();

// Crear alerta
$alert->addAlert([
    'name' => 'Alerta de Velocidad',
    'type' => 'overspeed',
    'limit' => 120
]);

// Obtener alertas de dispositivo
$deviceAlerts = $alert->getDeviceAlerts(1);

// Configurar período de tiempo para alerta
$alert->setAlertTimePeriod(1, 5, [
    'from' => '08:00',
    'to' => '18:00'
]);

// Obtener protocolos y eventos
$protocols = $alert->getProtocols();
$events = $alert->getEventsByProtocol('teltonika');
```

### 5. Sensor (Sensores)

[](#5-sensor-sensores)

Gestiona sensores de dispositivos.

```
$sensor = $client->sensor();

// Obtener sensores de un dispositivo
$sensors = $sensor->getSensors(1);

// Crear sensor
$sensor->addSensor([
    'device_id' => 1,
    'name' => 'Sensor de Temperatura',
    'type' => 'temperature'
]);

// Editar sensor
$sensor->editSensor(1, ['name' => 'Temperatura Motor']);

// Eliminar sensor
$sensor->destroySensor(1);
```

### 6. Service (Servicios)

[](#6-service-servicios)

Gestiona servicios de mantenimiento de vehículos.

```
$service = $client->service();

// Obtener servicios
$services = $service->getServices(1);

// Crear servicio
$service->addService([
    'device_id' => 1,
    'name' => 'Cambio de Aceite',
    'interval' => 5000
]);
```

### 7. Geofence (Geocercas)

[](#7-geofence-geocercas)

Gestiona geocercas (zonas geográficas).

```
$geofence = $client->geofence();

// Listar geocercas
$geofences = $geofence->getGeofences();

// Crear geocerca
$geofence->addGeofence([
    'name' => 'Zona Centro',
    'coordinates' => '...',
    'polygon_color' => '#FF0000'
]);

// Verificar si un punto está en geocercas
$result = $geofence->pointInGeofences(-34.603722, -58.381592);

// Grupos de geocercas
$groups = $geofence->getGeofenceGroups();
```

### 8. Route (Rutas)

[](#8-route-rutas)

Gestiona rutas predefinidas.

```
$route = $client->route();

// Listar rutas
$routes = $route->getRoutes();

// Crear ruta
$route->addRoute([
    'name' => 'Ruta Principal',
    'coordinates' => '...'
]);

// Grupos de rutas
$groups = $route->getRouteGroups();
```

### 9. Report (Reportes)

[](#9-report-reportes)

Genera y gestiona reportes.

```
$report = $client->report();

// Listar reportes
$reports = $report->getReports();

// Tipos de reportes disponibles
$types = $report->getReportTypes();

// Crear reporte
$report->addReport([
    'title' => 'Reporte Mensual',
    'type' => 'general'
]);

// Generar reporte
$data = $report->generateReport(1, [
    'from' => '2023-01-01',
    'to' => '2023-01-31'
]);
```

### 10. Command (Comandos)

[](#10-command-comandos)

Envía comandos GPRS y SMS a dispositivos.

```
$command = $client->command();

// Obtener datos para comando
$data = $command->sendCommandData(1);

// Enviar comando GPRS
$command->sendGprsCommand(1, [
    'command' => 'getlocation'
]);

// Enviar comando SMS
$command->sendSmsCommand(1, [
    'message' => 'STATUS#'
]);

// Ver comandos enviados
$commands = $command->getDeviceCommands(1);
```

### 11. Event (Eventos)

[](#11-event-eventos)

Gestiona eventos de dispositivos.

```
$event = $client->event();

// Obtener eventos
$events = $event->getEvents(['device_id' => 1]);

// Eliminar eventos
$event->destroyEvents(1);
```

### 12. Custom Event (Eventos Personalizados)

[](#12-custom-event-eventos-personalizados)

Gestiona eventos personalizados.

```
$customEvent = $client->customEvent();

// Listar eventos personalizados
$events = $customEvent->getCustomEvents();

// Crear evento personalizado
$customEvent->addCustomEvent([
    'name' => 'Entrada a Zona',
    'type' => 'geofence_in'
]);
```

### 13. Task (Tareas)

[](#13-task-tareas)

Gestiona tareas y asignaciones.

```
$task = $client->task();

// Listar tareas
$tasks = $task->getTasks();

// Obtener tarea específica
$taskDetail = $task->getTask(1);

// Crear tarea
$task->addTask([
    'title' => 'Entrega Cliente',
    'device_id' => 1,
    'priority' => 'high'
]);

// Obtener estados y prioridades
$statuses = $task->getTaskStatuses();
$priorities = $task->getTaskPriorities();
```

### 14. Driver (Conductores)

[](#14-driver-conductores)

Gestiona información de conductores.

```
$driver = $client->driver();

// Listar conductores
$drivers = $driver->getUserDrivers();

// Crear conductor
$driver->addUserDriver([
    'name' => 'Juan Pérez',
    'license' => 'ABC123',
    'phone' => '+5491123456789'
]);
```

### 15. Map Icon (Iconos de Mapa)

[](#15-map-icon-iconos-de-mapa)

Gestiona iconos personalizados para el mapa.

```
$mapIcon = $client->mapIcon();

// Listar iconos de usuario
$icons = $mapIcon->getUserMapIcons();

// Crear icono personalizado
$mapIcon->addMapIcon([
    'name' => 'Mi Icono',
    'icon' => fopen('/path/to/icon.png', 'r')
]);

// Grupos de POIs
$pois = $mapIcon->getPoisGroups();
```

### 16. GPRS Template (Plantillas GPRS)

[](#16-gprs-template-plantillas-gprs)

Gestiona plantillas de comandos GPRS.

```
$gprs = $client->gprsTemplate();

// Listar plantillas
$templates = $gprs->getUserGprsTemplates();

// Crear plantilla
$gprs->addUserGprsTemplate([
    'name' => 'Obtener Ubicación',
    'message' => 'getlocation'
]);
```

### 17. SMS Template (Plantillas SMS)

[](#17-sms-template-plantillas-sms)

Gestiona plantillas de mensajes SMS.

```
$sms = $client->smsTemplate();

// Listar plantillas
$templates = $sms->getUserSmsTemplates();

// Crear plantilla
$sms->addUserSmsTemplate([
    'name' => 'Estado',
    'message' => 'STATUS#'
]);
```

🔧 Manejo de Errores
-------------------

[](#-manejo-de-errores)

La biblioteca incluye manejo específico de errores:

```
use Gpswox\Exceptions\ApiException;
use Gpswox\Exceptions\AuthenticationException;

try {
    $setup = $client->setup();
    $data = $setup->getEditSetupData();
} catch (AuthenticationException $e) {
    // Error de autenticación (401)
    echo "Error de autenticación: " . $e->getMessage();
} catch (ApiException $e) {
    // Otros errores de API
    echo "Error de API: " . $e->getMessage() . " (Código: " . $e->getCode() . ")";
}
```

Desarrollo
----------

[](#desarrollo)

### Ejecutar Tests

[](#ejecutar-tests)

```
./vendor/bin/phpunit tests/
```

### Estructura del Proyecto

[](#estructura-del-proyecto)

```
src/
├── Wox.php                    # Cliente principal
├── Resources/                 # Recursos de la API
│   ├── Setup.php             # Configuración de cuenta
│   ├── Device.php            # Gestión de dispositivos
│   └── History.php           # Historial de dispositivos
└── Exceptions/               # Excepciones personalizadas
    ├── ApiException.php
    ├── AuthenticationException.php
    └── ResourceNotFoundException.php

```

API de Setup
------------

[](#api-de-setup)

### Métodos Disponibles

[](#métodos-disponibles)

#### `getEditSetupData(string $lang = null, array $additionalParams = [])`

[](#geteditsetupdatastring-lang--null-array-additionalparams--)

Obtiene todos los datos de configuración de la cuenta.

**Parámetros:**

- `$lang` (opcional): Código de idioma (ej: 'es', 'en')
- `$additionalParams` (opcional): Parámetros adicionales

**Retorna:** Array con datos completos de configuración incluyendo:

- `item`: Información del usuario
- `timezones`: Zonas horarias disponibles
- `units_of_distance`: Unidades de distancia (km, mi)
- `units_of_capacity`: Unidades de capacidad (lt, gl)
- `units_of_altitude`: Unidades de altitud (mt, ft)
- `groups`: Grupos del usuario
- `sms_queue_count`: Cantidad de SMS en cola
- Opciones de configuración de SMS Gateway
- Opciones de horario de verano (DST)

#### `updateSetupData(array $data)`

[](#updatesetupdataarray-data)

Actualiza la configuración de la cuenta.

**Parámetros:**

- `$data`: Array con los datos a actualizar

#### `getCurrentTimezone()`

[](#getcurrenttimezone)

Obtiene el timezone actualmente seleccionado por el usuario.

**Retorna:** Array con `id` y `value` del timezone actual, o `null` si no se encuentra

**Ejemplo:**

```
$currentTimezone = $setup->getCurrentTimezone();
if ($currentTimezone) {
    echo "Timezone: {$currentTimezone['value']} (ID: {$currentTimezone['id']})";
    // Ejemplo: "Timezone: UTC +01:00 (ID: 65)"
}
```

#### Métodos de Conveniencia

[](#métodos-de-conveniencia)

- `getTimezones()`: Solo zonas horarias
- `getDistanceUnits()`: Solo unidades de distancia
- `getCapacityUnits()`: Solo unidades de capacidad
- `getAltitudeUnits()`: Solo unidades de altitud
- `getUserInfo()`: Solo información del usuario
- `getCurrentTimezone()`: Timezone actual del usuario (id y value)
- `getSmsGatewayOptions()`: Solo opciones de SMS Gateway
- `getDstOptions()`: Solo opciones de horario de verano

Licencia
--------

[](#licencia)

MIT License

Contribuir
----------

[](#contribuir)

1. Fork el proyecto
2. Crea una rama para tu feature (`git checkout -b feature/AmazingFeature`)
3. Commit tus cambios (`git commit -m 'Add some AmazingFeature'`)
4. Push a la rama (`git push origin feature/AmazingFeature`)
5. Abre un Pull Request

###  Health Score

20

—

LowBetter than 14% of packages

Maintenance51

Moderate activity, may be stable

Popularity9

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity12

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/69a60c00428e9075a85759d44949d3506aedfe06c9b37b27a90fce39493c5158?d=identicon)[Jhamnerx](/maintainers/Jhamnerx)

---

Top Contributors

[![Jhamnerx](https://avatars.githubusercontent.com/u/30221273?v=4)](https://github.com/Jhamnerx "Jhamnerx (4 commits)")

### Embed Badge

![Health badge](/badges/jhamnerx-gpswox-api/health.svg)

```
[![Health](https://phpackages.com/badges/jhamnerx-gpswox-api/health.svg)](https://phpackages.com/packages/jhamnerx-gpswox-api)
```

###  Alternatives

[stripe/stripe-php

Stripe PHP Library

4.0k143.3M475](/packages/stripe-stripe-php)[twilio/sdk

A PHP wrapper for Twilio's API

1.6k92.9M270](/packages/twilio-sdk)[knplabs/github-api

GitHub API v3 client

2.2k15.8M187](/packages/knplabs-github-api)[facebook/php-business-sdk

PHP SDK for Facebook Business

90121.9M34](/packages/facebook-php-business-sdk)[meilisearch/meilisearch-php

PHP wrapper for the Meilisearch API

73813.7M114](/packages/meilisearch-meilisearch-php)[google/gax

Google API Core for PHP

263103.1M453](/packages/google-gax)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
