Compare commits

...

24 Commits

Author SHA1 Message Date
malle-pietje
1522992e49 bumped version to 1.1.100
fixed incorrect return type for `create_voucher()`, reported by @pa-
2024-10-29 12:14:00 +01:00
malle-pietje
70f6a374e2 - added get_system_log() method to get data from the system logs, returns pages results
- minor formatting changes
2024-10-23 13:30:34 +02:00
malle-pietje
ff9e6f0225 merged #244 for a small change to the start_rolling_upgrade() method, contributed by @Jacobtims
minor additional change to allow changes to the payload of the `start_rolling_upgrade()` method
2024-10-17 16:41:45 +02:00
Jacob Timmerman
00a637dbc4 Add "uxg" to start_rolling_upgrade payload (#244)
* Fix payload start_rolling_upgrade method

* Add "uxg" to start_rolling_upgrade payload
2024-10-17 16:31:25 +02:00
malle-pietje
6498b0255b Merge branch 'master' of github.com:Art-of-WiFi/UniFi-API-client
merging #243
2024-10-17 14:56:47 +02:00
malle-pietje
05e791bcf0 minor changes 2024-10-17 14:56:36 +02:00
Jacob Timmerman
192a1262c3 Fix payload start_rolling_upgrade method (#243) 2024-10-17 14:55:54 +02:00
malle-pietje
30056f50fc - bumped version to 1.1.96
- removed @version tag in docblock as it contained redundant information
- merged #241 which adds a method to download a generated backup, (contributed by @Jacobtims)
2024-10-14 14:34:48 +02:00
Jacob Timmerman
d040c512a7 Add method to download generated backup (#241)
Merged PR #241
2024-10-14 14:31:44 +02:00
malle-pietje
b633fa54c7 added ability top determine attributes to fetch with AP and site stats
general minor clean up
bumped version to 1.1.95
2024-10-07 12:54:19 +02:00
malle-pietje
5327d0c534 minor changes 2024-10-07 10:39:48 +02:00
malle-pietje
f1fc80f34f API client class v1.1.94
- minor fix based on Scrutinizer feedback
- re-added `update_admin()` method to the class; for some reason, the merge of #228 was not successful
2024-08-12 10:24:03 +02:00
malle-pietje
f82d1a6b64 removed exit following suggestion from Scrutinizer 2024-08-08 17:56:33 +02:00
malle-pietje
6f6e80e862 cleanup some comments/doc blocks 2024-08-08 17:45:03 +02:00
malle-pietje
4fefc11761 simplified the contructor by assigning default values to properties within the argument list 2024-08-08 17:37:33 +02:00
malle-pietje
0db5effe6f minor fix to return type hinting based on feedback from Scrutinizer 2024-08-07 16:26:54 +02:00
malle-pietje
fd69d844a6 API client class v1.1.93
- added the migrate_device() method to migrate one or more devices from one controller to another
- added the cancel_migrate_device() method to cancel the migration for one or more devices
- added the upgrade_all_devices() method to upgrade all devices of a selected type to the latest firmware version
- changed the force_provision() method to allow for multiple MAC addresses to be passed as a parameter
- minor changes to a number of doc-blocks
- general changes for improved consistency and readability
2024-08-07 16:03:09 +02:00
malle-pietje
12b85ce9db moved 2 properties to constants which seems more appropriate
reformatted single-line comments
2024-08-06 12:30:47 +02:00
malle-pietje
54ec631d4b added a new example demonstrating the change of site settings 2024-08-04 15:35:26 +02:00
Jacob Timmerman
fdea77fce0 Add days paramater to generate_backup method (#232) 2024-08-02 17:12:29 +02:00
malle-pietje
108ddd3995 further cleanup of notes in doc blocks 2024-07-31 11:16:02 +02:00
malle-pietje
63600f4da1 - added delete_admin()` method, contributed by @Jacobtims
- reformatting of notes in the doc blocks
2024-07-31 10:55:21 +02:00
malle-pietje
20aa3e1377 merging PR #228 2024-07-31 10:25:02 +02:00
malle-pietje
d36a088101 API client class v1.1.90
- remove existing x-csrf-token headers before adding a new one, UniFi OS does not like multiple x-csrf-tokens in the same request
2024-02-27 18:48:41 +01:00
4 changed files with 797 additions and 693 deletions

View File

@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2016, Art of WiFi
Copyright (c) 2024, Art of WiFi
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@@ -2,8 +2,10 @@
A PHP class that provides access to Ubiquiti's [**UniFi Network Application**](https://unifi-network.ui.com/) API.
UniFi Network Application software versions 5.X.X, 6.X.X, 7.X.X, and 8.X.X (version **8.1.104** has been confirmed to work)
are supported as well as Network Applications on **UniFi OS-based consoles** (UniFi OS **3.2.12** has been confirmed to work).
UniFi Network Application software versions 5.X.X, 6.X.X, 7.X.X, and 8.X.X (version **8.5.2** has been confirmed to
work) are supported as well as Network Applications on **UniFi OS-based consoles** (UniFi OS **4.0.20** has been
confirmed to work).
This class is used by our API Browser tool, which can be found
[here](https://github.com/Art-of-WiFi/UniFi-API-browser).
@@ -15,12 +17,13 @@ easy inclusion in your projects.
## Requirements
- a server with:
- PHP **7.4.0** or higher (use version [1.1.83](https://github.com/Art-of-WiFi/UniFi-API-client/releases/tag/v1.1.83) for PHP 7.3.x and lower)
- PHP **7.4.0** or higher (use version [1.1.83](https://github.com/Art-of-WiFi/UniFi-API-client/releases/tag/v1.1.83)
for PHP 7.3.x and lower)
- PHP json and PHP cURL modules
- tested on Apache 2.4 with PHP 7.4.27 and cURL 7.60.0 and with PHP 8.2.12 and cURL 7.81.0
- tested on Apache 2.4 with PHP 7.4.27 and cURL 7.60.0 and with PHP 8.3.11 and cURL 7.81.0
- direct network connectivity between this server and the host and port (usually TCP port 8443 or port 443 for
UniFi OS) where the UniFi Controller is running
- you **must** use **accounts with local access permissions** to access the UniFi Controller API through this class
- you **must** use an **account with local access permissions** to access the UniFi Controller API through this class
- do not use UniFi Cloud accounts and do not enable 2FA for the accounts that you use with this class
@@ -34,16 +37,20 @@ Support for UniFi OS-based controllers has been added as of version 1.1.47. Thes
- UniFi Cloud Key Gen2 Plus (UCK G2 Plus), firmware version 2.0.24 or higher
- UniFi Cloud Console, details [here](https://help.ui.com/hc/en-us/articles/4415364143511)
- UniFi Express (UX)
- UniFi Dream Wall (UDW)
- UniFi Cloud Gateway Ultra (UCG-Ultra)
- UniFi Enterprise Fortress Gateway (EFG)
The class automatically detects UniFi OS consoles and adjusts the URLs and several functions/methods accordingly.
UniFi OS consoles require you to connect using port **443** instead of **8443** which is used for "software-based"
controllers. If your own code implements strict validation of the URL that is passed to the constructor, please adapt
your logic to allow URLs without a port suffix or with port 443 when working with a UniFi OS-based controller.
UniFi OS-based controllers require you to connect using port **443** instead of **8443** which is used for
"software-based" controllers. If your own code implements strict validation of the URL that is passed to the
constructor, please adapt your logic to allow URLs without a port suffix or with port 443 when working with a
UniFi OS-based controller.
### Remote API access to UniFi OS-based controllers
When connecting to a UniFi OS gateway through the WAN interface, you need to create a specific firewall rule to
When connecting to a UniFi OS-based gateway through the WAN interface, you need to create a specific firewall rule to
allow this. See this blog post on the Art of WiFi website for more details:
https://artofwifi.net/blog/how-to-access-the-unifi-controller-by-wan-ip-or-hostname-on-a-udm-pro

View File

@@ -0,0 +1,69 @@
<?php
/**
* PHP API usage example
*
* contributed by: Art of WiFi
* description: example to toggle the site-wide auto upgrade setting on a UniFi controller
*/
/**
* using the composer autoloader
*/
require_once('vendor/autoload.php');
/**
* include the config file (place your credentials etc. there if not already present)
* see the config.template.php file for an example
*
* @var string $controlleruser the user name for access to the UniFi Controller
* @var string $controllerpassword the password for access to the UniFi Controller
* @var string $controllerurl full url to the UniFi Controller, eg. 'https://
* @var string $controllerversion the version of the Controller software, eg. '4.6.6' (must be at least 4.0.0)
* @var bool $debug set to true (without quotes) to enable debug output to the browser and the PHP error log
*/
require_once('config.php');
/**
* site id for the site where settings are to be updated
*/
$site_id = 'zzzzz';
/**
* initialize the UniFi API connection class and log in to the controller to do our thing
*/
$unifi_connection = new UniFi_API\Client(
$controlleruser,
$controllerpassword,
$controllerurl,
$site_id,
$controllerversion
);
$login_results = $unifi_connection->login();
if ($login_results) {
/**
* we get the current site mgmt settings
*/
$current_site_settings = $unifi_connection->list_settings();
$mgmt_settings = [];
foreach ($current_site_settings as $section) {
if ($section->key == 'mgmt') {
$mgmt_settings = $section;
}
}
/**
* toggle the auto upgrade setting and set the auto upgrade hour to 3
*/
$mgmt_settings->auto_upgrade = !$mgmt_settings->auto_upgrade;
$mgmt_settings->auto_upgrade_hour = 3;
$mgmt_id = $mgmt_settings->_id;
$set_result = $unifi_connection->set_site_mgmt($mgmt_id, $mgmt_settings);
echo 'done' . PHP_EOL;
exit();
}
echo 'login failed' . PHP_EOL;

File diff suppressed because it is too large Load Diff