Этот инструмент позволяет просматривать данные, предоставляемые через API контроллера UniFi, разработанный с использованием PHP, JavaScript и платформы Bootstrap CSS. Он поставляется в комплекте с классом PHP для доступа к API контроллера UniFi , который поддерживает больше конечных точек API, чем инструмент браузера UniFi API.
Если вы планируете создать собственный PHP-код для взаимодействия с API контроллера UniFi, рекомендуется использовать автономную версию клиентского класса API, которую можно найти по адресу https://github.com/Art-of-WiFi/. UniFi-API-клиент. Там же вы найдете примеры и подробные инструкции по его использованию.
При использовании браузера UniFi API помните следующее:
Поскольку структура файла конфигурации изменилась, мы рекомендуем создать новую установку при обновлении с 1.x до 2.x.
Браузерный инструмент UniFi API предлагает следующие функции:
$debug
значение true
в файле конфигурации, чтобы включить режим отладки)Обратите внимание, что встроенный клиент API поддерживает гораздо больше конечных точек API, однако не все из них имеет смысл добавлять в браузер API.
Установка этого инструмента довольно проста. Самый простой способ сделать это — использовать git clone
, который также позволяет легко обновлять:
cd
в корневую папку вашего веб-сервера (в Ubuntu это /var/www/html
) и выполните следующую команду из командной строки: git clone https://github.com/Art-of-WiFi/UniFi-API-browser.git
Кроме того, вы можете загрузить zip-файл и разархивировать его в выбранный вами каталог, а затем выполнить следующие действия по настройке.
@scyto поддерживает контейнеры Docker для быстрого и простого развертывания браузерного инструмента UniFi API. Пожалуйста, обратитесь к этой Wiki-странице в репозитории для получения более подробной информации. Обратите внимание, что мы не предоставляем поддержку, связанную с установками на основе Docker.
config/config-template.php
который следует скопировать/переименовать в config/config.php
config/config.php
config/config-template.php
config/users-template.php
http(s)://<server IP address>/UniFi-API-browser/
Поддержка контроллеров на базе ОС UniFi (например, UniFi Dream Machine Pro) добавлена в версии 2.0.7. При добавлении сведений об устройстве с ОС UniFi в файл config/config.php
убедитесь, что к URL-адресу не добавлен суффикс порта или косая черта в конце.
При использовании браузера UniFi API для подключения к сетевому приложению на шлюзе на базе ОС UniFi через интерфейс WAN необходимо создать определенное правило брандмауэра, чтобы разрешить внешний доступ к порту 443 на локальном интерфейсе шлюза. Для получения дополнительной информации обратитесь к следующему сообщению в блоге: https://artofwifi.net/2022/04/07/how-to-access-the-unifi-controller-by-wan-ip-or-hostname. -on-a-udm-pro/
Начиная с версии 2.0.0 вы можете расширить раскрывающееся меню «Коллекции» своими собственными параметрами, добавив их в файл config.php
.
Вот пример:
/**
* 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 ]
],
],
],
]);
Примечание. Для опции меню типа collection
необходимы свойства type
, label
, method
и params
.
Вот как выглядит результат для приведенного выше примера:
Если вы установили инструмент с помощью команды git clone
, вы можете применить обновления, перейдя в каталог, в котором установлен инструмент, и запустив оттуда команду git pull
.
В противном случае вы можете просто скопировать содержимое последнего zip-файла в каталог, в котором установлен инструмент.
Клиент PHP API, поставляемый в комплекте с этим инструментом, основан на разработках следующих разработчиков:
и API, опубликованный Ubiquiti:
Другие включенные библиотеки:
Осторожность
Важно отметить, что инструмент браузера UniFi API — это мощный инструмент, который обеспечивает доступ к конфиденциальным данным и параметрам конфигурации вашего контроллера UniFi. Поэтому важно принять соответствующие меры безопасности, например ограничить доступ к инструменту только доверенным лицам. Кроме того, вы должны знать о рисках безопасности, связанных с запуском кода PHP на вашем сервере.
Мы настоятельно рекомендуем включить функцию аутентификации по имени пользователя и паролю, создав файл config/users.php
на основе включенного файла config/users-template.php
. При создании паролей и их хэшей SHA512 для входа в файл config/users.php
обязательно используйте надежные случайные пароли . Для получения более подробной информации обратитесь к инструкциям в файле config/users-template.php
Этот проект активно поддерживается, и отзывы и предложения всегда приветствуются. Если у вас возникли какие-либо проблемы или у вас есть предложения по улучшению, воспользуйтесь списком проблем GitHub или форумами сообщества Ubiquiti (https://community.ubnt.com/t5/UniFi-Wireless/UniFi-API-browser-tool-released/). mp/1392651), чтобы поделиться своими идеями и вопросами.
Вот пара скриншотов инструмента в действии.
Форма входа при включенной аутентификации пользователя:
Выпадающее меню выбора контроллера:
Выпадающее меню выбора сайта:
Раскрывающееся меню коллекции:
Показ коллекции настроек сайта в формате JSON:
Показ коллекции настроек сайта в интерактивном формате PHP:
Модальное окно «О программе»: