{"id":2079,"date":"2017-04-21T08:34:44","date_gmt":"2017-04-21T08:34:44","guid":{"rendered":"http:\/\/www.fmsdocumentation.com\/status-api\/"},"modified":"2019-07-12T12:49:25","modified_gmt":"2019-07-12T10:49:25","slug":"api-de-streaming-de-coordenadas-de-objeto","status":"publish","type":"page","link":"https:\/\/www.fmsdocumentation.com\/es\/api\/api-de-streaming-de-coordenadas-de-objeto\/","title":{"rendered":"API de streaming de coordenadas de objeto"},"content":{"rendered":"\n<p>\n\nEl prop\u00f3sito principal de la API de streaming de coordenadas de objeto es informar al usuario sobre cambios del objeto. Esta API funciona como un stream de informaci\u00f3n, usando tecnolog\u00eda <a href=\"https:\/\/en.wikipedia.org\/wiki\/Server-sent_events\">SSE (eventos enviados por servidor)<\/a>. Al enviar una solicitud de API, al principio se muestra la \u00faltima conocida coordenada para cada objeto, luego se mostrar\u00e1n datos nuevos tan pronto como se ocurren cambios. No hay necesidad de enviar la solicitud de API de nuevo a menos que no hay conectividad de streaming\n\n<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.fmsdocumentation.com\/wp-content\/uploads\/2017\/04\/Streaming-APIES.png\"><img loading=\"lazy\" decoding=\"async\" width=\"261\" height=\"335\" src=\"https:\/\/www.fmsdocumentation.com\/wp-content\/uploads\/2017\/04\/Streaming-APIES.png\" alt=\"\" class=\"wp-image-3388\" srcset=\"https:\/\/www.fmsdocumentation.com\/wp-content\/uploads\/2017\/04\/Streaming-APIES.png 261w, https:\/\/www.fmsdocumentation.com\/wp-content\/uploads\/2017\/04\/Streaming-APIES-234x300.png 234w\" sizes=\"auto, (max-width: 261px) 100vw, 261px\" \/><\/a><\/figure>\n\n\n\n<p style=\"background-color: #2e67b1; color: #ffffff; padding-left: 10px; padding-right: 10px;\"><p class=\"note\">Note<br>Debido a que la API devuelve la \u00faltima conocida coordenada, en los casos cuando el streaming de la API estaba activo y tuvo que reconectarse por alguna raz\u00f3n sin recibir coordenadas nuevas, el usuario recibir\u00e1 la \u00faltima conocida coordenada, duplicando el registro de coordenada. Hay que tener esto en cuenta, porque puede producir problemas en algunos sistemas.\n\nSe puede iniciar el streaming de la API para un objeto espec\u00edfico o todos los objetos disponibles para el usuario.<\/p><\/p>\n\n\n\n<p>\n\nEjemplo de solicitud para un objeto espec\u00edfico:\n\n<\/p>\n\n\n\n<p style=\"background-color: #000000; color: #bbbdc0; font-family: Lucida Console; padding-left: 10px; padding-right: 10px;\">GET \/object-coordinates-stream?version=1&amp;object_id=&lt;&#8230;&gt;&amp;api_key=&lt;&#8230;&gt;<br \/>HOST:api.fm-track.com<br \/>Content-Type:text\/event-stream;charset=UTF-8<\/p>\n\n\n\n<p>\n\nEjemplo de solicitud para todos los objetos disponibles:\n\n<\/p>\n\n\n\n<p style=\"background-color: #000000; color: #bbbdc0; font-family: Lucida Console; padding-left: 10px; padding-right: 10px;\">GET \/object-coordinates-stream?version=1&amp;api_key=&lt;&#8230;&gt;<br \/>HOST:api.fm-track.com<br \/>Content-Type:text\/event-stream;charset=UTF-8<\/p>\n\n\n\n<p>Dos par\u00e1metros son obligatorios para que funcione esta API:<\/p>\n\n\n\n<table id=\"tablepress-36\" class=\"tablepress tablepress-id-36\">\n<thead>\n<tr class=\"row-1\">\n\t<th class=\"column-1\">Par\u00e1metro<\/th><th class=\"column-2\">Tipo<\/th><th class=\"column-3\">Descripci\u00f3n<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr class=\"row-2\">\n\t<td class=\"column-1\">version<\/td><td class=\"column-2\">Cadena<\/td><td class=\"column-3\">Versi\u00f3n de la API, actualmente solo version=1 est\u00e1 disponible<\/td>\n<\/tr>\n<tr class=\"row-3\">\n\t<td class=\"column-1\">api_key<\/td><td class=\"column-2\">Cadena<\/td><td class=\"column-3\">Clave de identificaci\u00f3n del usuario<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<!-- #tablepress-36 from cache -->\n\n\n\n<p>Se puede incluir un par\u00e1metro adicional a la solicitud:<\/p>\n\n\n\n<table id=\"tablepress-37\" class=\"tablepress tablepress-id-37\">\n<thead>\n<tr class=\"row-1\">\n\t<th class=\"column-1\">Par\u00e1metro<\/th><th class=\"column-2\">Tipo<\/th><th class=\"column-3\">Descripci\u00f3n<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr class=\"row-2\">\n\t<td class=\"column-1\">object_id<\/td><td class=\"column-2\">Cadena<\/td><td class=\"column-3\">ID del objeto externo<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<!-- #tablepress-37 from cache -->\n\n\n\n<p>Respuesta del servidor:<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\">\n<pre class=\"CodeMirror cm-s-dracula\" data-setting=\"{&quot;mode&quot;:&quot;javascript&quot;,&quot;mime&quot;:&quot;application\/json&quot;,&quot;theme&quot;:&quot;dracula&quot;,&quot;lineNumbers&quot;:true,&quot;lineWrapping&quot;:false,&quot;readOnly&quot;:true}\">{\n    \"object_id\" : \"abc123\",\n    \"datetime\" : \"2017-04-13T06:58:48.090Z\",\n    \"ignition_status\" : \"UNKNOWN\",\n    \"position\" : {\n        \"altitude\" : 0,\n        \"direction\" : 0,\n        \"latitude\" : 0,\n        \"longitude\" : 0,\n        \"hdop\": 0,\n        \"satellites_count\" : 0,\n        \"speed\" : 0\n    },\n    \"device_inputs\" : {\n        \"digital_input_1\" : true,\n        \"digital_input_2\" : true,\n        \"digital_input_3\" : true,\n        \"digital_input_4\" : true,\n        \"power_supply_voltage\" : 0,\n        \"ibutton\" : \"xxxxxxxxxx\",\n        \"first_driver_id\" : \"xxxxxxxxxx\",\n        \"second_driver_id\" : \"xxxxxxxxxx\",\n         \"temperature_sensor_0\": 0,\n         \"temperature_sensor_1\": 0,\n         \"temperature_sensor_2\": 0,\n         \"temperature_sensor_3\": 0,\n         \"temperature_sensor_0_id\": \"xxxxxxxxxx\"\n    },\n    \"calculated_inputs\":{\n        \"mileage\" : 0\n    }\n}<\/pre>\n<\/div>\n\n\n<p>Todos los par\u00e1metros de respuesta que se puede recibir:<\/p>\n\n<table id=\"tablepress-38\" class=\"tablepress tablepress-id-38\">\n<thead>\n<tr class=\"row-1\">\n\t<th class=\"column-1\">Par\u00e1metro<\/th><th class=\"column-2\">Tipo<\/th><th class=\"column-3\">Descripci\u00f3n<\/th><th class=\"column-4\">Unidades<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr class=\"row-2\">\n\t<td class=\"column-1\">object_id<\/td><td class=\"column-2\">Cadena<\/td><td class=\"column-3\">Identificador del objeto en el sistema<\/td><td class=\"column-4\">Texto<\/td>\n<\/tr>\n<tr class=\"row-3\">\n\t<td class=\"column-1\">datetime<\/td><td class=\"column-2\">Fecha y hora<\/td><td class=\"column-3\">La fecha y hora de coordenada, generada en el hardware. Formato: \"yyyy-mm-ddThh:mm:ss.sssZ\"<\/td><td class=\"column-4\">Seg\u00fan ISO8601<\/td>\n<\/tr>\n<tr class=\"row-4\">\n\t<td class=\"column-1\">ignition_status<\/td><td class=\"column-2\">Enum<\/td><td class=\"column-3\">Indica el estado de ignici\u00f3n del objeto.<br \/>\n\"ON\" - Ignici\u00f3n encendida <br \/>\n\"OFF\" - Ignici\u00f3n apagada<br \/>\n\"UNKNOWN\" - No hay datos de ignici\u00f3n<br \/>\n<\/td><td class=\"column-4\">ON - OFF<\/td>\n<\/tr>\n<tr class=\"row-5\">\n\t<td class=\"column-1\">position<\/td><td class=\"column-2\">Array<\/td><td class=\"column-3\">Contiene todos los par\u00e1metros de registros GPS<\/td><td class=\"column-4\"><\/td>\n<\/tr>\n<tr class=\"row-6\">\n\t<td class=\"column-1\">latitude<\/td><td class=\"column-2\">Decimal<\/td><td class=\"column-3\">Coordenada GPS - valor de latitud<\/td><td class=\"column-4\">Grados<\/td>\n<\/tr>\n<tr class=\"row-7\">\n\t<td class=\"column-1\">longitude<\/td><td class=\"column-2\">Decimal<\/td><td class=\"column-3\">Coordenada GPS - valor de longitud<\/td><td class=\"column-4\">Grados<\/td>\n<\/tr>\n<tr class=\"row-8\">\n\t<td class=\"column-1\">altitude<\/td><td class=\"column-2\">N\u00famero entero<\/td><td class=\"column-3\">Coordenada GPS - valor de altitud<\/td><td class=\"column-4\">N\u00famero<\/td>\n<\/tr>\n<tr class=\"row-9\">\n\t<td class=\"column-1\">direction<\/td><td class=\"column-2\">N\u00famero entero<\/td><td class=\"column-3\">Direcci\u00f3n de movimiento en grados<\/td><td class=\"column-4\">0 = norte, creciente en el sentido horario<\/td>\n<\/tr>\n<tr class=\"row-10\">\n\t<td class=\"column-1\">speed<\/td><td class=\"column-2\">N\u00famero entero<\/td><td class=\"column-3\">Velocidad del objeto en movimiento<\/td><td class=\"column-4\">km\/h<\/td>\n<\/tr>\n<tr class=\"row-11\">\n\t<td class=\"column-1\">satellites_count<\/td><td class=\"column-2\">N\u00famero entero<\/td><td class=\"column-3\">Cantidad de visibles sat\u00e9lites GPS o GLONASS (depende de la configuraci\u00f3n del dispositivo) al generar el registro en el dispositivo<\/td><td class=\"column-4\">N\u00famero<\/td>\n<\/tr>\n<tr class=\"row-12\">\n\t<td class=\"column-1\">device_inputs<\/td><td class=\"column-2\">Array<\/td><td class=\"column-3\">Contiene los par\u00e1metros recibidos desde el hardware<\/td><td class=\"column-4\"><\/td>\n<\/tr>\n<tr class=\"row-13\">\n\t<td class=\"column-1\">power_supply_voltage<\/td><td class=\"column-2\">N\u00famero entero<\/td><td class=\"column-3\">Voltaje de fuente de alimentaci\u00f3n del dispositivo<\/td><td class=\"column-4\">mV<\/td>\n<\/tr>\n<tr class=\"row-14\">\n\t<td class=\"column-1\">ibutton<\/td><td class=\"column-2\">Cadena<\/td><td class=\"column-3\">C\u00f3digo de iButton o tarjeta RFID de un conductor asignado a un veh\u00edculo<\/td><td class=\"column-4\">Texto<\/td>\n<\/tr>\n<tr class=\"row-15\">\n\t<td class=\"column-1\">hdop<\/td><td class=\"column-2\">Decimal<\/td><td class=\"column-3\">Precisi\u00f3n de coordenada GPS<\/td><td class=\"column-4\">N\u00famero<\/td>\n<\/tr>\n<tr class=\"row-16\">\n\t<td class=\"column-1\">first_driver_id<\/td><td class=\"column-2\">Cadena<\/td><td class=\"column-3\">C\u00f3digo de tac\u00f3grafo del primer conductor<\/td><td class=\"column-4\">Texto<\/td>\n<\/tr>\n<tr class=\"row-17\">\n\t<td class=\"column-1\">second_driver_id<\/td><td class=\"column-2\">Cadena<\/td><td class=\"column-3\">C\u00f3digo de tac\u00f3grafo del segundo conductor<\/td><td class=\"column-4\">Texto<\/td>\n<\/tr>\n<tr class=\"row-18\">\n\t<td class=\"column-1\">digital_input_1<\/td><td class=\"column-2\">Booleano<\/td><td class=\"column-3\">Estado del objeto configurado o su equipo: <br \/>\nTrue - activo <br \/>\nFalse - inactivo<\/td><td class=\"column-4\">True - False (Verdadero - Falso)<\/td>\n<\/tr>\n<tr class=\"row-19\">\n\t<td class=\"column-1\">digital_input_2<\/td><td class=\"column-2\">Booleano<\/td><td class=\"column-3\">Estado del objeto configurado o su equipo: <br \/>\nTrue - activo <br \/>\nFalse - inactivo<\/td><td class=\"column-4\">True - False (Verdadero - Falso)<\/td>\n<\/tr>\n<tr class=\"row-20\">\n\t<td class=\"column-1\">digital_input_3<\/td><td class=\"column-2\">Booleano<\/td><td class=\"column-3\">Estado del objeto configurado o su equipo: <br \/>\nTrue - activo <br \/>\nFalse - inactivo<\/td><td class=\"column-4\">True - False (Verdadero - Falso)<\/td>\n<\/tr>\n<tr class=\"row-21\">\n\t<td class=\"column-1\">digital_input_4<\/td><td class=\"column-2\">Booleano<\/td><td class=\"column-3\">Estado del objeto configurado o su equipo: <br \/>\nTrue - activo <br \/>\nFalse - inactivo<\/td><td class=\"column-4\">True - False (Verdadero - Falso)<\/td>\n<\/tr>\n<tr class=\"row-22\">\n\t<td class=\"column-1\">temperature_sensor_0<\/td><td class=\"column-2\">Decimal<\/td><td class=\"column-3\">Datos de sensor de temperatura<\/td><td class=\"column-4\">\u00b0C<\/td>\n<\/tr>\n<tr class=\"row-23\">\n\t<td class=\"column-1\">temperature_sensor_1<\/td><td class=\"column-2\">Decimal<\/td><td class=\"column-3\">Datos de sensor de temperatura<\/td><td class=\"column-4\">\u00b0C<\/td>\n<\/tr>\n<tr class=\"row-24\">\n\t<td class=\"column-1\">temperature_sensor_2<\/td><td class=\"column-2\">Decimal<\/td><td class=\"column-3\">Datos de sensor de temperatura<\/td><td class=\"column-4\">\u00b0C<\/td>\n<\/tr>\n<tr class=\"row-25\">\n\t<td class=\"column-1\">temperature_sensor_3<\/td><td class=\"column-2\">Decimal<\/td><td class=\"column-3\">Datos de sensor de temperatura<\/td><td class=\"column-4\">\u00b0C<\/td>\n<\/tr>\n<tr class=\"row-26\">\n\t<td class=\"column-1\">temperature_sensor_0_id<\/td><td class=\"column-2\">Cadena<\/td><td class=\"column-3\">ID de sensor de temperatura<\/td><td class=\"column-4\">Texto<\/td>\n<\/tr>\n<tr class=\"row-27\">\n\t<td class=\"column-1\">calculated_inputs<\/td><td class=\"column-2\">Array<\/td><td class=\"column-3\">Contiene los par\u00e1metros calculados en el sistema desde otros par\u00e1metros, seg\u00fan la configuraci\u00f3n<\/td><td class=\"column-4\"><\/td>\n<\/tr>\n<tr class=\"row-28\">\n\t<td class=\"column-1\">mileage<\/td><td class=\"column-2\">Decimal<\/td><td class=\"column-3\">Distancia recorrida por el dispositivo (depende de la configuraci\u00f3n del dispositivo)<\/td><td class=\"column-4\">km<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<!-- #tablepress-38 from cache -->\n<p>\u00a0<\/p>\n<p>Se puede ver los puntos finales de API, los par\u00e1metros de solicitudes y las respuestas en \u201cSwagger\u201d haciendo clic en este enlace:\u00a0<a href=\"https:\/\/api.fm-track.com\/swagger-ui.html\">https:\/\/api.fm-track.com<\/a><\/p>\n<p><p class=\"note\">Nota<br \/>Por favor tenga en cuenta que la respuesta del servidor es un stream de datos, de los mismos datos, recibidos desde el dispositivo. Todos los datos recibidos se proporcionan &#8220;como est\u00e1n&#8221;. Esto significa que el dispositivo puede peri\u00f3dicamente enviar coordenadas de una ubicaci\u00f3n previa entre registros de la ubicaci\u00f3n actual. La API no comprueba o gestiona la continuidad de los datos recibidos.<\/p><\/p>\n<hr \/>\n<p><div class=\"alignleft\"><a href=\"https:\/\/www.fmsdocumentation.com\/es\/api\/api-de-historial-de-coordenadas-de-objeto-2\/\" title=\"API de historial de coordenadas de objeto v2\"><span class=\"arrow\">\u2039 &nbsp <\/span> API de historial de coordenadas de objeto v2 <\/a><\/div> <div class=\"alignright\"><a href=\"https:\/\/www.fmsdocumentation.com\/es\/api\/api-de-streaming-de-coordenadas-de-objeto-v2\/\" title=\"API de streaming de coordenadas de objeto v2\">API de streaming de coordenadas de objeto v2 <span class=\"arrow\"> &nbsp\u203a <\/span> <\/a><\/div><\/p>","protected":false},"excerpt":{"rendered":"<p>El prop\u00f3sito principal de la API de streaming de coordenadas de objeto es informar al usuario sobre cambios del objeto. Esta API funciona como un stream de informaci\u00f3n, usando tecnolog\u00eda SSE (eventos enviados por servidor). Al enviar una solicitud de API, al principio se muestra la \u00faltima conocida coordenada para cada objeto, luego se mostrar\u00e1n &hellip; <a href=\"https:\/\/www.fmsdocumentation.com\/es\/api\/api-de-streaming-de-coordenadas-de-objeto\/\" class=\"more-link\">Sigue leyendo <span class=\"screen-reader-text\">API de streaming de coordenadas de objeto<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":2084,"menu_order":3,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2079","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.fmsdocumentation.com\/es\/wp-json\/wp\/v2\/pages\/2079","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fmsdocumentation.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.fmsdocumentation.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.fmsdocumentation.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fmsdocumentation.com\/es\/wp-json\/wp\/v2\/comments?post=2079"}],"version-history":[{"count":10,"href":"https:\/\/www.fmsdocumentation.com\/es\/wp-json\/wp\/v2\/pages\/2079\/revisions"}],"predecessor-version":[{"id":8098,"href":"https:\/\/www.fmsdocumentation.com\/es\/wp-json\/wp\/v2\/pages\/2079\/revisions\/8098"}],"up":[{"embeddable":true,"href":"https:\/\/www.fmsdocumentation.com\/es\/wp-json\/wp\/v2\/pages\/2084"}],"wp:attachment":[{"href":"https:\/\/www.fmsdocumentation.com\/es\/wp-json\/wp\/v2\/media?parent=2079"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}