Reenvio de alertas para terceiros
A partir da configuração de alertas, é possível reenviar, em tempo real, os alertas emitidos pela plataforma para terceiros. Esses terceiros podem ser um sistema próprio da empresa ou outra plataforma.
Configuração de reenvio de alertas “Atribuir servidor de destino”
A opção para configurar o reenvio de alertas está localizada no módulo de alertas, nas opções do canto superior direito, e se chama “Atribuir servidor de destino”.
Após acessar o módulo, devemos definir o servidor de destino para onde desejamos que os alertas sejam reenviados e também selecionar quais alertas queremos que sejam enviados ao host.
IMPORTANTE: essa opção de “Atribuir servidor de destino” está disponível apenas para o distribuidor e quando o acesso é realizado com login como cliente. O cliente final não terá acesso a essa opção.
Na opção “Histórico de envios”, será possível consultar um histórico de todos os envios realizados de cada alerta e o respectivo resultado.
Forma de receber os dados dos alertas
A plataforma envia cada alerta por meio de uma requisição HTTP realizada ao servidor de destino.
As informações e os dados do alerta são enviados por meio de dados POST dentro da requisição HTTP.
As chaves que serão recebidas dentro da requisição POST serão as seguintes.
idalert device date time description latitude longitude speed address vehicle patent
Um exemplo em linguagem PHP de como receber esses dados seria o seguinte:
<?php
echo 'idAlert ' . $_POST["idalert"];
echo 'device ' . $_POST["device"];
echo 'date ' . $_POST["date"];
echo 'time ' . $_POST["time"];
echo 'description '.$_POST["description"];
echo 'position ' . $_POST["latitude"].','.$_POST["longitude"];
echo 'speed ' . $_POST["speed"];
echo 'address ' . $_POST["address"];
echo 'vehicle ' . $_POST["vehicle"];
echo 'patent ' . $_POST["patent"];
?>
O código acima é o que você deve colocar no seu servidor de destino que receberá os alertas, por exemplo: https://miservidor.com/receive_alerts.php
Com o exemplo acima, você deve conseguir receber os dados e, a partir daí, fica por conta de vocês definir qual ação realizar com as informações recebidas, como, por exemplo, salvá-las em um banco de dados.
Exemplo de como receber os dados utilizando a linguagem C#
using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Text;
namespace DumpHttpRequests
{
internal class Program
{
private static void Main(string[] args)
{
if (!HttpListener.IsSupported)
{
Console.WriteLine("Windows XP SP2 or Server 2003 is required to use the HttpListener class.");
return;
}
// URI prefixes are required,
var prefixes = new List<string>() { "http://*:8000/" };
// Create a listener.
HttpListener listener = new HttpListener();
// Add the prefixes.
foreach (string s in prefixes)
{
listener.Prefixes.Add(s);
}
listener.Start();
Console.WriteLine("Listening...");
while (true)
{
// Note: The GetContext method blocks while waiting for a request.
HttpListenerContext context = listener.GetContext();
HttpListenerRequest request = context.Request;
string documentContents;
using (Stream receiveStream = request.InputStream)
{
using (StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8))
{
documentContents = readStream.ReadToEnd();
}
}
Console.WriteLine($"Recived request for {request.Url}");
Console.WriteLine(documentContents);
// Obtain a response object.
HttpListenerResponse response = context.Response;
// Construct a response.
string responseString = "Respuesta a la peticion";
byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
// Get a response stream and write the response to it.
response.ContentLength64 = buffer.Length;
System.IO.Stream output = response.OutputStream;
output.Write(buffer, 0, buffer.Length);
// You must close the output stream.
output.Close();
}
listener.Stop();
}
}
}
