Instruções BásicasInício Rápido (Quick Start)

Guia de Integração Rápida (Quick Start)

Este guia prático foi criado para ajudar você a realizar a sua primeira integração de ponta a ponta com a API BrasilSat GPS em poucos minutos.

O ciclo básico de uma integração consiste em:

  1. Autenticar para obter um access_token temporário.
  2. Listar Dispositivos vinculados à conta para obter os respectivos IMEIs.
  3. Rastrear os dispositivos em tempo real passando a lista de IMEIs coletados.

Abaixo você encontra scripts funcionais prontos em Node.js e Python demonstrando exatamente como implementar esse fluxo sequencial completo.


Exemplo Completo em Node.js

O script abaixo realiza a autenticação (calculando a assinatura MD5), obtém a lista de dispositivos e faz a consulta de localização em tempo real para os primeiros dispositivos encontrados.

const crypto = require('crypto');
 
// Configurações
const BASE_URL = 'https://api.brasilsatgps.com.br';
const ACCOUNT = 'seu_usuario';
const PASSWORD = 'sua_senha';
 
// Helper para gerar hash MD5 minúsculo
function md5(text) {
  return crypto.createHash('md5').update(text).digest('hex');
}
 
async function quickStart() {
  try {
    console.log('1. Iniciando processo de autenticação...');
    const time = Math.floor(Date.now() / 1000);
    const signature = md5(md5(PASSWORD) + time);
 
    const authUrl = `${BASE_URL}/api/authorization?time=${time}&account=${ACCOUNT}&signature=${signature}`;
    const authRes = await fetch(authUrl);
    const authData = await authRes.json();
 
    if (authData.code !== 0 || !authData.record?.access_token) {
      throw new Error(`Falha na autenticação: ${JSON.stringify(authData)}`);
    }
 
    const token = authData.record.access_token;
    console.log(`✓ Autenticado com sucesso! Token: ${token.substring(0, 10)}...`);
 
    console.log('\n2. Obtendo a lista de dispositivos...');
    const listUrl = `${BASE_URL}/api/device/list?access_token=${token}`;
    const listRes = await fetch(listUrl);
    const listData = await listRes.json();
 
    if (listData.code !== 0 || !listData.record?.length) {
      console.log('Nenhum dispositivo encontrado ou erro ao listar:', listData);
      return;
    }
 
    console.log(`✓ Encontrados ${listData.record.length} dispositivos.`);
    const imeis = listData.record.slice(0, 5).map(dev => dev.imei).join(',');
    console.log(`IMEIs para rastrear (limite de 5): ${imeis}`);
 
    console.log('\n3. Consultando rastreamento em tempo real (Track)...');
    const trackUrl = `${BASE_URL}/api/track?access_token=${token}&imeis=${imeis}`;
    const trackRes = await fetch(trackUrl);
    const trackData = await trackRes.json();
 
    if (trackData.code === 0 && trackData.record) {
      console.log('✓ Dados de Rastreamento Obtidos:');
      trackData.record.forEach(device => {
        console.log(`- IMEI: ${device.imei} | Velocidade: ${device.speed} km/h | Lat: ${device.latitude} | Lng: ${device.longitude}`);
      });
    } else {
      console.log('Falha ao obter posições:', trackData);
    }
 
  } catch (error) {
    console.error('❌ Ocorreu um erro no fluxo:', error.message);
  }
}
 
quickStart();