Все функции возвращают массив, в каждом присутствует поле [error] с кодом ошибки, "0" - все в порядке.
В базе логин и пароль не хранятся нам нужны только номер сессии, id пользователя и ник.
Чтобы их получить нужно пройти авторизацию:
Код: Выделить всё
include_once("/var/www/modules/dev_broadlink/broadlink.class.php");
$cloud = Broadlink::Cloud();
$response = $cloud->Auth("[email protected]", "password");
$response будет содержать массив:
[error] => 0
[msg] => ok
[userid] => 4690560846290745793
[nickname] => dmw
[iconpath] =>
[loginsession] => b2b5175390728bcc501a031631c8b4a4
[logintime] => 2017-07-27T17:27:37+08:00
[loginip] => 10.243.41.151
для дальнейшей работы нужно запомнить только эти поля:
[userid],
[nickname] и
[loginsession]. В процессе они не меняются, всегда статичны и если даже повторить авторизацию, то будут выданы опять они же. Думаю что присваиваются каждому пользователю при первой регистрации и закрепляются на всегда, хотя nickname изменить можно, изменяться при этом остальное не знаю.
Если использовать класс Cloud() без параметров, то работает только функция авторизации, все остальные будут возвращать ошибку:
["error"] => -1009
["msg"] => Authorization Required
Чтобы считалось что авторизация пройдена при подключении класса нужно передавать параметры
Broadlink::Cloud(nickname, userid, loginsession).
Вот например запрос информации о пользователе:
Код: Выделить всё
include_once("/var/www/modules/dev_broadlink/broadlink.class.php");
$cloud = Broadlink::Cloud("dmw", "4690560846290745793", "b2b5175390728bcc501a031631c8b4a4");
$response = $cloud->GetUserInfo();
Если все в порядке $response будет таким:
[error] => 0
[msg] => ok
[nickname] => dmw
[registerdate] => 2017-02-13 21:31:52
[country] =>
[preferlanguage] =>
[realname] =>
[birthday] => 0000-00-00 00:00:00
[gender] =>
[getnews] =>
[phone] =>
Это запрос списка доступных backup-ов в облаке:
Код: Выделить всё
include_once("/var/www/modules/dev_broadlink/broadlink.class.php");
$cloud = Broadlink::Cloud("dmw", "4690560846290745793", "b2b5175390728bcc501a031631c8b4a4");
$response = $cloud->GetListBackups();
в $response будет список (максимально 10 позиций):
[сode] => 200
- [0][pathname] => /23/3c4b3262363a8d0424f7e74f5f072a/2017-07-18_20:23:29
- [0][size] => 171.7KB
- [1][pathname] => /23/3c4b3262363a8d0424f7e74f5f072a/2017-07-26_00:19:43
- [1][size] => 171.7KB
[msg] => OK
[error] => 0
Если нужен конкретный файл из этого списка, то можно запросить его по [pathname]:
Код: Выделить всё
include_once("./modules/dev_broadlink/broadlink.class.php");
$cloud = Broadlink::Cloud("dmw", "4690560846290745793", "b2b5175390728bcc501a031631c8b4a4");
$response = $cloud->GetBackup("/23/3c4b3262363a8d0424f7e74f5f072a/2017-07-18_20:23:29");
Функция скачает zip-архив в ./files/bl_buckup.zip, распакует его в ./files/SharedData/ и удалит чтоб место не занимал.
Если все хорошо, $response вернет путь к папке с распакованными файлами:
[msg] => /var/www/files/SharedData
[error] => 0
Если нужен последний сохраненный backup, то:
Код: Выделить всё
include_once("./modules/dev_broadlink/broadlink.class.php");
$cloud = Broadlink::Cloud("dmw", "4690560846290745793", "b2b5175390728bcc501a031631c8b4a4");
$response = $cloud->GetLastBackup();
Тоже результатом будет путь куда распаковал архив.
Далее работаем с полученными файлами как с обычным json, например:
Код: Выделить всё
$buttons = json_decode(file_get_contents("./files/SharedData/jsonButton")); //список пультов для jsonIrCode
$ircodes = json_decode(file_get_contents("./files/SharedData/jsonIrCode")); //коды пультов из jsonButton, здесь берем и для TC2 коды
$devices = json_decode(file_get_contents("./files/SharedData/jsonDevice")); //список устройств, можно найти publicKey и terminalId
и т.д.