9- Fuentes de Datos (API JSON)

Las Fuentes de Datos te permiten extraer contenido en vivo desde cualquier API JSON externa y mostrarlo en tus pantallas. Conectas una API una sola vez en la configuración de tu cuenta y luego la reutilizas en tantas plantillas como quieras.

EasySignage obtiene y almacena en caché los datos de forma centralizada según un horario fijo, por lo que:

  • Tus pantallas (reproductores) nunca llaman directamente a tu API: solo muestran el resultado almacenado en caché.
  • Tu API no recibe una llamada por cada pantalla; se obtiene una vez y se comparte.
  • Las credenciales (tokens, claves API) se almacenan cifradas y nunca se exponen a un navegador ni a un reproductor.

Esto funciona de la misma forma que la integración existente de Google Sheets: conecta una fuente y luego coloca sus datos en una plantilla como tabla.

Nota: Fuentes de Datos es una función BETA. Por ahora admite mostrar una lista repetida de registros como tabla dinámica.


 

Cómo funciona

  1. Agregas una API JSON como fuente de datos (URL + autenticación opcional).
  2. EasySignage obtiene la API, almacena en caché la respuesta y la actualiza en el intervalo que elijas.
  3. En el editor de plantillas seleccionas la fuente de datos, eliges qué lista repetir y qué columnas mostrar, y agregas una tabla dinámica a tu diseño.
  4. Cuando los datos en caché cambian, la tabla en tus pantallas se actualiza automáticamente, sin necesidad de editar ni volver a publicar la plantilla.

 

Parte 1 — Configurar una fuente de datos

 

Abrir la página de Fuentes de Datos

  1. Haz clic en el icono de perfil en la esquina superior derecha.
  2. Selecciona Settings (Configuración).
  3. Elige Data Sources (Fuentes de Datos).
  4. Haz clic en Add Data Source (Agregar Fuente de Datos).

 

Agregar Fuente de Datos

 

Completar los detalles de conexión

CampoQué ingresar
Type (Tipo)Elige JSON API.
Name (Nombre)Una etiqueta que reconocerás más tarde (por ejemplo, API de Menú de Cafetería). Obligatorio.
Description (Descripción)Nota opcional sobre para qué es esta fuente.
URLLa dirección completa en HTTPS que devuelve JSON (por ejemplo, https://ejemplo.com/menu.json).
Authentication (Autenticación)Cómo debe autenticarse EasySignage ante tu API: No Auth (Sin autenticación), Bearer Token o API Key. Ver a continuación.
Custom Headers (Encabezados Personalizados)Encabezados de solicitud adicionales opcionales; haz clic en Add (Agregar) para ingresar pares clave/valor.
Query Parameters (Parámetros de Consulta)Valores opcionales añadidos a la URL; haz clic en Add (Agregar) para ingresar pares clave/valor.
Refresh Interval (Intervalo de Actualización)Con qué frecuencia EasySignage vuelve a obtener los datos: 5m, 15m, 30m, 1h, 6h, 12h o 24h.
Enabled (Habilitado)Activa o desactiva la fuente sin eliminarla.

 

Importante: La URL debe usar HTTPS. No se permiten direcciones http:// simples, enlaces que redirigen a otro lugar ni direcciones internas o privadas.

 

Opciones de autenticación

  • No Auth (Sin autenticación): la API es pública; no se envía nada adicional.
  • Bearer Token: EasySignage envía un encabezado Authorization: Bearer <token>. Pega tu token en el campo Bearer Token.
  • API Key: EasySignage envía tu clave en un encabezado que especifiques. Ingresa el Header Name (Nombre del Encabezado, por ejemplo X-API-Key) y el valor de API Key.

Nota: Las credenciales se cifran en el momento en que las guardas y nunca vuelven a mostrarse ni se envían de regreso a tu navegador. Al editar una fuente, deja el campo de token/clave vacío para conservar las credenciales existentes, o escribe un nuevo valor para reemplazarlas.

 

Autenticación y encabezados

 

Probar la conexión

Haz clic en Test Connection (Probar Conexión) antes de guardar. EasySignage realiza una solicitud en vivo y muestra:

  • El estado Connected / Failed (Conectado / Fallido), el código de estado HTTP, el tiempo de respuesta y el tamaño de la carga útil.
  • Un explorador de campos del JSON devuelto para que confirmes que los datos se ven correctamente.

En el explorador de campos puedes:

  • Expandir objetos y listas para ver su estructura.
  • Ver el tipo de cada campo y un valor de ejemplo.
  • Detectar colecciones (listas de registros); estas se marcan con una etiqueta de colección y son lo que repetirás en una tabla.
  • Buscar un campo por nombre.
  • Copiar la ruta de un campo con el icono de copiar.
  • Alternar entre el árbol de campos y el JSON sin procesar.

Cuando todo se vea correcto, haz clic en Save (Guardar).

 

Gestionar fuentes existentes

En la lista de Fuentes de Datos, cada fuente muestra su tipo, estado, intervalo de actualización, hora de la última sincronización y cuántas plantillas la usan. Desde ahí puedes Editar, Duplicar, Habilitar/Deshabilitar, Explorar datos (examinar la última carga útil obtenida) o Eliminar una fuente.

 


 

Parte 2 — Usar una fuente de datos en una plantilla

  1. Abre o crea una plantilla y haz clic en Open Editor (Abrir Editor).
  2. En el menú izquierdo elige Data Sources (Fuentes de Datos) y luego abre el conector JSON API.

Agregar una tabla dinámica desde una fuente de datos

 

  1. En Choose a data source (Elegir una fuente de datos), selecciona la fuente que configuraste.
  2. Si la fuente aún no se ha obtenido, haz clic en Fetch now (Obtener ahora) para cargar sus datos.
  3. Elige la lista a repetir (la colección de registros) si la fuente tiene más de una.
  4. Marca las columnas que quieres mostrar.
  5. Haz clic en Add to template (Agregar a la plantilla). Se agrega una tabla dinámica a tu lienzo: una fila por registro, una columna por campo que seleccionaste.
  6. Posiciona y da estilo a la tabla como a cualquier otro objeto, luego Save (Guardar).

 

Importante: Una vez que guardas una plantilla con una fuente de datos, esa plantilla queda bloqueada a esa fuente de datos. Al volver a abrir el editor, la fuente aparece preseleccionada y no se puede cambiar. Para usar una fuente distinta, elimina la tabla del diseño y agrega una nueva.

 

Cómo se mantiene actualizada la tabla

La tabla está conectada a la fuente de datos, no es una copia congelada. Cuando EasySignage actualiza la fuente (según su intervalo), la tabla en tus pantallas se actualiza automáticamente. No necesitas editar ni volver a publicar la plantilla.


 

Detalles técnicos

 

Flujo de datos

Configuras una fuente  ─▶  El backend de EasySignage la obtiene y almacena en caché
                                     │
        Vinculación a la plantilla ─▶  las filas se construyen a partir de los datos en caché
                                     │
                              Los reproductores leen el resultado en caché
                              (tu API nunca es llamada por una pantalla)
  • Obtención y caché: la API se obtiene del lado del servidor y la respuesta se almacena en caché. Los reproductores renderizan desde la caché, así que tu API solo recibe las solicitudes programadas de EasySignage.

  • Una colección por tabla: cada tabla repite una lista de registros (como una hoja o pestaña). Si tu JSON tiene varias listas, agrega una tabla separada para cada una.

  • Orden de columnas: las columnas aparecen en el orden en que las seleccionaste; la primera fila es el encabezado.

 

Seguridad y límites

  • Solo HTTPS. Se rechazan http://, URL que redirigen, credenciales incrustadas (usuario:contraseña@…) y hosts internos o privados.

  • Las credenciales se cifran en reposo usando claves de cifrado gestionadas y nunca se devuelven al navegador ni se envían a los reproductores.

  • Límite de tamaño: las respuestas mayores de 10 MB se rechazan.

  • Tiempo de espera: las solicitudes agotan el tiempo de espera después de 30 segundos.

  • Límite de registros: las listas muy grandes se truncan para proteger la reproducción.

 

Formatos de respuesta admitidos

EasySignage funciona mejor con un objeto JSON que contiene una lista de registros, por ejemplo:

{
  "resource": [
    { "name": "Cereales", "price": "3.00", "day": "Lunes" },
    { "name": "Tostadas",   "price": "2.50", "day": "Lunes" }
  ]
}

Aquí resource es la colección que repetirías, y name, price, day son las columnas. Los registros que omiten un campo simplemente muestran una celda vacía.

 


 

Solución de problemas

 

ProblemaQué verificar
Test Connection: Authentication failed (Falló la autenticación)Vuelve a ingresar el token/clave API; confirma el nombre del encabezado para la autenticación por clave API.
Test Connection: Only HTTPS is allowed (Solo se permite HTTPS)Cambia la URL a https://.
Test Connection: The URL redirects elsewhere (La URL redirige a otro lugar)Usa la URL directa final; no se siguen las redirecciones.
La respuesta no es JSON válidoAbre la URL en un navegador y confirma que devuelve JSON válido (sin página de error HTML, sin corchetes sobrantes o faltantes).
Sin datos que explorar / tabla vacíaAbre la fuente y usa Fetch now (Obtener ahora), o espera a la primera sincronización programada, y luego agrega la tabla.
No se encontró ninguna lista repetibleTu JSON no tiene un arreglo de registros; la tabla necesita una lista (colección) para repetir.
La tabla se muestra pero falta el fondo en la vista previaLa imagen del diseño aún se está renderizando; espera un momento y actualiza la vista previa.

 

Consejo: Si un campo muestra JSON sin procesar en lugar de un valor, es un objeto anidado. Elige el subcampo específico (por ejemplo, un precio dentro de un objeto de detalles) como columna en su lugar.