Esta herramienta le permite explorar datos expuestos a través de la API del controlador UniFi, desarrollada con PHP, JavaScript y el marco CSS Bootstrap. Viene incluido con una clase PHP para acceder a la API del controlador UniFi , que admite más puntos finales API que la herramienta de navegador API UniFi.
Si planea crear su propio código PHP para interactuar con la API del controlador UniFi, se recomienda utilizar la versión independiente de la clase de cliente API, que se puede encontrar en https://github.com/Art-of-WiFi/ Cliente UniFi-API. Allí también encontrará ejemplos e instrucciones detalladas sobre cómo utilizarlo.
Tenga en cuenta lo siguiente cuando utilice el navegador API UniFi:
Debido a que la estructura del archivo de configuración ha cambiado, recomendamos crear una instalación nueva al actualizar de 1.x a 2.x.
La herramienta de navegador UniFi API ofrece las siguientes características:
$debug
en true
en el archivo de configuración para habilitar el modo de depuración)Tenga en cuenta que el cliente API incluido admite muchos más puntos finales API, aunque no tiene sentido agregarlos todos al navegador API.
La instalación de esta herramienta es bastante sencilla. La forma más sencilla de hacerlo es utilizando git clone
, que también permite actualizaciones sencillas:
cd
a la carpeta raíz de su servidor web (en Ubuntu esto es /var/www/html
) y ejecute el siguiente comando desde su símbolo del sistema: git clone https://github.com/Art-of-WiFi/UniFi-API-browser.git
Alternativamente, puede optar por descargar el archivo zip y descomprimirlo en el directorio de su elección, luego seguir los pasos de configuración a continuación.
@scyto mantiene contenedores Docker para una implementación rápida y sencilla de la herramienta de navegador API UniFi. Consulte esta página Wiki dentro del repositorio para obtener más detalles. Tenga en cuenta que no brindamos soporte relacionado con instalaciones basadas en Docker.
config/config-template.php
que debe copiarse/renombrarse a config/config.php
config/config.php
config/config-template.php
para obtener más instrucciones de configuración.config/users-template.php
para obtener más detalles.http(s)://<server IP address>/UniFi-API-browser/
Se agregó compatibilidad con controladores basados en UniFi OS (por ejemplo, UniFi Dream Machine Pro) con la versión 2.0.7. Al agregar los detalles de un dispositivo con sistema operativo UniFi al archivo config/config.php
, asegúrese de no agregar un sufijo de puerto ni barras diagonales a la URL.
Cuando se utiliza el navegador API de UniFi para conectarse a una aplicación de red en una puerta de enlace basada en el sistema operativo UniFi a través de la interfaz WAN, es necesario crear una regla de firewall específica para permitir el acceso externo al puerto 443 en la interfaz local de la puerta de enlace. Para obtener más información, consulte la siguiente publicación de blog para obtener más detalles: https://artofwifi.net/2022/04/07/how-to-access-the-unifi-controller-by-wan-ip-or-hostname -en-un-udm-pro/
Desde la versión 2.0.0, puede ampliar el menú desplegable Colecciones con sus propias opciones agregándolas al archivo config.php
.
He aquí un ejemplo:
/**
* adding a custom sub-menu example
*/
$ collections = array_merge ( $ collections , [
[
' label ' => ' Custom Menu ' , // length of this string is limited due to dropdown menu width
' options ' => [
[
' type ' => ' collection ' , // either 'collection' or 'divider'
' label ' => ' hourly site stats past 24 hours ' , // string that is displayed in the dropdown menu
' method ' => ' stat_hourly_site ' , // name of the method/function in the API client class that is called
' params ' => [( time () - ( 24 * 60 * 60 )) * 1000 , time () * 1000 ], // an array containing the parameters as they are passed to the method/function
],
[
' type ' => ' collection ' ,
' label ' => ' daily site stats past 31 days ' ,
' method ' => ' stat_daily_site ' ,
' params ' => [( time () - ( 31 * 24 * 60 * 60 )) * 1000 , time () * 1000 ],
],
[
' type ' => ' divider ' , // dividers have no other properties
],
[
' type ' => ' collection ' ,
' label ' => ' enable the site LEDs ' ,
' method ' => ' site_leds ' , // don't go too wild when adding such calls, this example is simply to show the flexibility
' params ' => [ true ]
],
[
' type ' => ' collection ' ,
' label ' => ' disable the site LEDs ' ,
' method ' => ' site_leds ' , // don't go too wild when adding such calls, this example is simply to show the flexibility
' params ' => [ false ]
],
],
],
]);
Nota: para una opción de menú de tipo collection
, se requieren las "propiedades" type
, label
, method
y params
.
Así es como se ve el resultado del ejemplo anterior:
Si instaló la herramienta usando el comando git clone
, puede aplicar actualizaciones ingresando al directorio donde está instalada la herramienta y ejecutando el comando git pull
desde allí.
De lo contrario, puede simplemente copiar el contenido del último archivo zip al directorio donde se instaló la herramienta.
El cliente PHP API que viene incluido con esta herramienta se basa en el trabajo de los siguientes desarrolladores:
y la API publicada por Ubiquiti:
Otras bibliotecas incluidas:
Precaución
Es importante tener en cuenta que la herramienta de navegador API de UniFi es una herramienta poderosa que permite el acceso a datos confidenciales y opciones de configuración en su controlador UniFi. Por lo tanto, es importante que tome las medidas de seguridad adecuadas, como limitar el acceso a la herramienta a personas de confianza. Además, debe tener en cuenta los riesgos de seguridad asociados con la ejecución de código PHP en su servidor.
Recomendamos encarecidamente habilitar la función de autenticación de nombre de usuario/contraseña creando un config/users.php
basado en el archivo config/users-template.php
incluido. Al crear contraseñas y sus hashes SHA512 para ingresarlas en el archivo config/users.php
, asegúrese de utilizar contraseñas aleatorias seguras . Consulte las instrucciones en el archivo config/users-template.php
para obtener más detalles.
Este proyecto se mantiene activamente y los comentarios y sugerencias siempre son bienvenidos. Si encuentra algún problema o tiene alguna sugerencia de mejora, utilice la lista de problemas de GitHub o los foros de la comunidad Ubiquiti (https://community.ubnt.com/t5/UniFi-Wireless/UniFi-API-browser-tool-released/ mp/1392651) para compartir sus ideas y preguntas.
Aquí hay un par de capturas de pantalla de la herramienta en acción.
El formulario de inicio de sesión cuando la autenticación de usuario está habilitada:
El menú desplegable de selección de controlador:
El menú desplegable de selección de sitio:
El menú desplegable de la colección:
Mostrando la colección de configuración del sitio en formato JSON:
Mostrando la colección de configuraciones del sitio en formato PHP interactivo:
El modal "Acerca de":