Event API

2026-10-16

Introducción a las funciones

EventAPI es el servicio de notificaciones activas de FlightHub Sync para enviar eventos empresariales a plataformas de terceros en tiempo real. Al usar EventAPI, se debe tener en cuenta lo siguiente:

    • Los usuarios deben verificar el campo x-dji-signature en el encabezado del servicio recibido. La firma se calcula mediante HMAC-SHA256 basada en el** token de la organización**, que se utiliza para verificar la validez del origen de la solicitud.
  • Los usuarios pueden configurar reglas de notificación, seleccionar los tipos de eventos a los que suscribirse y especificar la suscripción de datos para todos los proyectos o proyectos específicos.
  • El punto final de recepción es compatible con los protocolos HTTP y HTTPS.
  • FlightHub 2 enviará las notificaciones de eventos utilizando una dirección IP fija. Los servidores de diferentes regiones utilizan direcciones IP distintas. Para la versión local de FlightHub, la dirección IP específica depende del servidor.
País/RegiónIP
Servidor de la UE + servidor global18.198.174.64
3.64.50.113
3.71.214.14
63.177.169.61
52.3.45.199
52.55.215.248
52.73.49.179
34.237.190.206
34.237.182.49
34.228.131.169

Configuración de reglas de notificación

Gestión de reglas

La lista de reglas muestra la siguiente información:

  • Nombre de la ruta: Definido por el usuario, hasta 60 caracteres
  • Dirección push: URL de punto final (HTTP/HTTPS)
  • Alcance de los datos: Todos los proyectos o proyectos específicos
  • Eventos suscritos: Lista de tipos de eventos seleccionados
  • Estado: Habilitado/Deshabilitado
  • Acciones Editar, Eliminar

Configuración del alcance de datos

  • Todos los proyectos: Incluye automáticamente todos los proyectos futuros.
  • Proyectos específicos: Cada proyecto solo puede hacer referencia a una regla personalizada (excluyendo las reglas de «Todos los proyectos»). Los proyectos ya referenciados aparecerán en gris.

Nota: Si ya existe una regla de «Todos los proyectos» en la organización, al crear una nueva regla para proyectos específicos se gatillará una advertencia de envío doble de eventos.

Auditoría del registro de entrega

EventAPI proporciona estadísticas de registros de entrega de 7 días, que incluyen:

  • Tasa de éxito: Se muestra en forma de porcentaje; una tasa de respuesta del 200 % se considera satisfactoria.
  • Total de eventos: Número de eventos generados en los últimos 7 días
  • Número de fallos: Número total de entregas fallidas en 7 días

Los registros de los últimos 7 días se pueden descargar en formato CSV. Solo se conservan los datos de este período.

Tipos de eventos push

Notificación de sincronización de archivos

{
  "id": "e3b0c442-73fc-1c14-9afb-f17e2fa6826a", // Identificador universalmente único (UUID) del mensaje de evento
  "type": "file_sync_success", // Tipo de evento: notificación de archivo sincronizado
  "created_at": 1767875288, // Marca de tiempo del envío del evento (segundos)
  "data": {
    "task_id": "sync_task_10001", // Identificador universalmente único de la tarea de sincronización
    "organization_id": "org_123456_xxxxxx", // ID de la organización
    "project_id": "proj_789012_xxxxxx", // ID del proyecto del archivo
    "file_id": "file_345678_xxxxxx", // ID del archivo dentro de FlightHub
    "file_type": "application/pdf", // Tipo de archivo (ruta de waypoint, registro de vuelo, modelo o archivo multimedia)
    "file_external_key": "customer_storage/2026/01/report_09.pdf", // Clave de objeto (ruta de almacenamiento) del archivo en el bucket de almacenamiento de terceros
    "file_bytes_size": 1048576, // Tamaño del archivo (bytes)
    "fh2_file_path": "/project_docs/report/report_09.pdf", // Ruta lógica original del archivo en DJI FlightHub 2
   }
}

Obtener lista de advertencias de IA e instantáneas

{
  "id": "e3b0c442-98fc-1c14-9afb-f17e2fa6826a" , // UUID del mensaje de evento
  "type": "ai_alert_record", // Tipo de evento: registros de detección de IA
  "created_at": 1767875288, // Marca de tiempo del envío del evento (segundos)
  "data": {
    "alert_uuid": "e3b0c442-98fc-1c14-9afb-f17e2fa6826a", // UUID de los registros de alerta
    "algorithm_source": 100002, // // ID de fuente del algoritmo. Los valores de enumeración son los siguientes:
                                   // 0: Algoritmo inteligente oficial de DJI
                                   // 1: Detección por luz visible de DJI de personas, vehículos y embarcaciones
                                   // 2: Detección por infrarrojo de DJI de personas, vehículos y embarcaciones
                                   // 3: Detección de temperatura por infrarrojo de DJI
                                   // 255: Algoritmos de terceros AI-inside en la aeronave
                                   // 100001: Algoritmos de terceros en la nube AI-LINK
                                   // 100002: Detección multimodal de objetos de DJI
    "drone_sn": "1581F6XXXXXX00A6XXXX", // Número de serie de la aeronave que ejecuta la tarea
    "file_id": 123456, // ID del archivo multimedia original asociado
    "file_url": "https://file-storage.djicdn.com/example/path/image.jpg?auth_key=xxxx", // Enlace de descarga de la imagen original (contiene parámetros de autenticación)
    "flight_id": "f17e2fa6-826a-48c5-a89a-fffe4093xxxx", // ID de vuelo asociado
    "gateway_sn": "6QCDL8XXXXXX02XXXX", // SN del dispositivo dock/gateway asociado
    "interval_seconds": 0, // Intervalo o duración de la alerta (segundos). Por defecto es 0 para algoritmos que no son en la nube
    "labels": [
      "lights"// Etiqueta/tipo del sujeto detectado
    ],
    "location": {
      "altitude": 80.5, // La altitud cuando ocurrió la alerta (metros)
      "latitude": 22.123456, // La latitud cuando ocurrió la alerta. Para algoritmos a bordo, esta es la coordenada GPS del centro del campo de visión de la cámara cuando ocurrió la alerta. Para algoritmos en la nube, esta es la posición de la aeronave.
      "longitude": 113.123456, // La longitud cuando ocurrió la alerta. Para algoritmos a bordo, esta es la coordenada GPS del centro del campo de visión de la cámara cuando ocurrió la alerta. Para algoritmos en la nube, esta es la posición de la aeronave.
    },
    "project_id": "fe2400a5-5a74-4cb5-8374-548b7eaxxxxx", // UUID del proyecto afiliado
    "task_name": "FlyToTask_Inspect_ZoneA", // Nombre de la tarea de vuelo asociada
    "thumbnail_url": "https://oss-cn-hangzhou.aliyuncs.com/example/thumbnail.jpeg?Expires=1767961676&Signature=xxxx", // Enlace de descarga de la miniatura (incluye firma y fecha de expiración)
    "timestamp": 1767875275677, // La marca de tiempo cuando ocurrió la detección de IA (milisegundos)
  }
}

Notificación de progreso de ejecución del flujo de trabajo activado

Se utiliza para enviar el progreso de ejecución de nodos del flujo de despacho automático (flujo de respuesta a incidentes), permitiendo que los sistemas de terceros sincronicen en tiempo real el estado de las tareas, los estados terminales y las marcas de falsa alarma.

{
  "event_type": "alert_workflow_progress",         // Tipo de evento: progreso de ejecución del flujo de trabajo activado
  "event_id": "e3b0c442-73fc-1c14-9afb-f17e2fa6826a", // ID único del mensaje de evento (UUID)
  "org_id": "org_123456_xxxxxx",                   // ID de la organización a la que pertenece este evento
  "project_id": "proj_789012_xxxxxx",              // ID del proyecto al que pertenece este evento (opcional)
  "created_at": 1767875288,                        // Marca de tiempo de envío del evento (segundos)
  "data": {
    "incident_id": "incident_2026062900001",       // ID del evento de alerta
    "workflow_uuid": "wf_uuid_xxxxxxxxxxxx",       // UUID del flujo de trabajo
    "drone_sn": "1581F5BKD2380030XXXXX",           // Número de serie de la aeronave operativa
    "node_type": "command_task",                   // Tipo de nodo: command_task (tarea FlyTo) / device_actions (acciones del dispositivo)
    "status": 1,                                   // Código de estado del nodo actual, depende de node_type; enumeraciones a continuación:
                                                   // node_type = "command_task" (nodo de tarea FlyTo):
                                                   //   0: Pendiente             (no terminal)
                                                   //   1: En ejecución          (no terminal)
                                                   //   2: Correcto              (terminal)
                                                   //   3: Intervención manual   (terminal)
                                                   //   4: Error de ejecución    (terminal)
                                                   // node_type = "device_actions" (nodo de acción del dispositivo):
                                                   //   0: Correcto              (terminal)
                                                   //   1: Parcialmente correcto (terminal)
                                                   //   2: Falló                 (terminal)
                                                   //   3: En curso              (no terminal)
                                                   //   4: Intervención manual   (terminal)
    "is_false_alarm": false,                       // Si se marca como falsa alarma (valor real solo se devuelve en estado terminal; en no terminal siempre es false)
    "flight_id": "task_uuid_xxxxxxxxxxxx"          // UUID de la execution_task actual
  }
}

Notificación de subida de archivos multimedia

{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "type": "media_file_uploaded",
  "created_at": 1767875288,
  "data": {
    "organization_id": "org_123456_xxxxxx",
    "project_id": "proj_789012_xxxxxx",
    "file_id": "file_345678_xxxxxx",
    "file_name": "DJI_20260108_120000_0001.JPG",
    "file_type": "image/jpeg",
    "file_size": 10485760,
    "device_sn": "1581F6XXXXXX00A6XXXX",
    "flight_id": "f17e2fa6-826a-48c5-a89a-fffe4093xxxx"
  }
}

Notificación de carga y actualización de archivos de ruta de vuelo

{
  "type": "wayline_file_uploaded",
  "org_id": "1024dd05-34ce-46b6-a872-cb32b8c98f64",
  "project_id": "38535b47-b972-4663-b1ce-5bd5a29224a4",
  "created_at": 1769414678,
  "data": {
    "id": "testcda7-c97d-4bf6-8f8f-b490b9b18401", // ID de la ruta de vuelo
    "name": "New waypoint route (2)",           // Nombre de la ruta de vuelo
    "object_key": "1testd05-34ce-46b6-a872-cb32b8c98f64/test9b47-b972-4663-b1ce-5bd5test24a4/e5testb3-2cf8-49af-b49b-64test0032c7/New waypoint route (2).kmz", // Clave de almacenamiento de objeto de la ruta de vuelo
    "type": 5 // Tipo de archivo. 5 indica la ruta de vuelo
  }
}

Notificación de finalización de reconstrucción del modelo

{
  "type": "model_post_reconstruction",
  "org_id": "105ddd05-34ce-46b6-a872-cb32b8c98f64",
  "project_id": "38559b47-b972-4663-b1ce-5bd5a29224a4",
  "created_at": 1769414678,
  "data": {
    "id": "2e12cda7-c97d-4bf6-8f8f-btest9b18401", // ID del modelo
    "name": "xx Model",                      // Nombre del modelo
    "object_key": "105ddd05-34ce-46b6-a872-cb32b8c98f64/38559b47-b972-4663-b1ce-5bd5a29224a4/etestbb3-2cf8-49af-b49b-64b1610032c7/Model", // Clave de almacenamiento de objeto del modelo
    "type": 8//8: Modelo 2D, 9: Modelo 3D
  }
}

Notificación sobre salida anómala de RPO

{
  "id": "9ab96be1-0231-4b2c-9892-2221188c323b",
  "type": "device_exit_return_home",
  "created_at": 1769400986,
  "data": {
    "action": 1,
    "event_type": "device_exit_return_home",
    "notify_type": "device_exit_return_home",
    "organization_uuid": "8test46f-2cd5-476b-9f33-415c98de11a5",
    "project_uuid": "8test9a5-d2ba-423d-a03e-e3b323c40810",
    "reason": null, // Motivo de la salida anormal de RTH: "2": "Error en la inicialización del árbol de comportamiento"; "3": "Rodeado por obstáculos"; "4": "Restricción de vuelo activada"; "5": "Obstáculo demasiado cerca"; "6": "Sin señal GPS"; "7": "Las banderas de salida de posición GPS y VIO son falsas"; "8": "Gran error de posición entre la fusión GPS y VIO"
    "sn": "158TESTGD24BK0010114" // SN de la aeronave que experimenta la salida anormal de RTH
  }
}

Notificación de anotación de organización añadida/editada

{
  "created_at": 1772803375,
  "data": {
    "count": 1,
    "download_url": "/openapi/v0.1/map/data-sync/files/33711783-bf96-440d-baa2-0e71afa1d485/f7356cd3-53de-4318-955f-306cbcc60ca2/0",
    "format": "kml-gz",
    "geometry_types": [
      "polygon"
    ],
    "sync_id": "annotation-f7356cd3-53de-4318-955f-306cbcc60ca2",
    "sync_type": 0
  },
  "id": "5df19eca-65cf-4975-a942-09fdcfd7bdf9",
  "org_id": "105ddd05-34ce-46b6-a872-cb32b8c98f64",
  "project_id": "33711783-bf96-440d-baa2-0e71afa1d485",
  "type": "map_geo_elements_update"
}

Notificación de actualización de dirección RTSP

{
  "converter_name": "Example Converter",
  "converter_id": "29f4f54b-93af-4fd3-aed6-bd3d768082e9",
  "sn": "SN1234567890",
  "camera_index": "89-0-0",
  "device_callsign": "DRONE-01",
  "url": "rtsp://192.168.1.10:554/live/stream",
  "username": "rtsp_user",
  "password": "rtsp_password"
}

API de cartografía FlightHub - Progreso de la reconstrucción del modelo

{
    "msg_type": "model_reconstruction_percent_change", // Tipo de mensaje, model_reconstruction_percent_change=Reconstrucción de modelo, model_zip_change=Compresión de modelo
    "resource_uuid": "7417bac3-00a4-4e07-b078-233c77e3fdf9",
    "model_uuid": "3d33643c-de0d-4070-b155-8cf791e662e2",
    "model_status": 14, // Estado de reconstrucción, 9=Compresión de modelo, 12=Esperando recursos, 13=Error al obtener recursos, 14=Reconstrucción en curso, 15=Reconstrucción exitosa, 16=Reconstrucción cancelada
    "model_size": 37353992,
    "reconstruction_progress": 100, // Progreso de reconstrucción, 0-100
    "error_code": 0, // Código de error de reconstrucción
    "zip_status": 2, // Estado de compresión, 1=Compresión en curso, 2=Compresión completada, 3=Error de compresión
    "zip_progress": 100, // Progreso de compresión 0-100
    "zip_file_key": "https://test-file-storage.djicdn.com/5a6f9d4b-2a38-4b4b-86f9-3a678da0bf4a/open_reconstruction/7417bac3-00a4-4e07-b078-233c77e3fdf9/3D/3d33643c-de0d-4070-b155-8cf791e662e2.zip?auth_key=1767942603-0-0-150d3c28868e91dd2446aef97c26de85", // Dirección de descarga del archivo de salida comprimido
}
Last Updated: