Начало работы

Что видит каждый пользователь

Ключу доступно ровно то же, что его пользователь видит в панели управления. Настраивать в API ничего не нужно: правила определяются организациями и правами доступа пользователя.

Только организации пользователя

API учитывает только организации, связанные с пользователем, — те же, что он может выбрать в панели управления.

Администратор видит всё в организации

Администратор организации или основной организации видит все её телевизоры, файлы и плейлисты.

Остальным — по правам доступа

Для остальных пользователей в каждой организации действуют права на просмотр телевизоров, файлов и плейлистов — те же, что открывают эти страницы в панели управления.

Изменения действуют сразу

Отозванное право доступа, удалённая организация или деактивированный в панели управления пользователь учитываются уже при следующем запросе.

Что не попадает в ответы

  • Объекты организаций, к которым нет прав доступа, не отображаются в списках. Прямой запрос такого объекта возвращает 404, как будто его не существует.
  • В плейлисте файл, который пользователь не может видеть, приходит с file, равным null. Телевизоры плейлиста и плейлисты файла показываются только в пределах того, что видит пользователь.
  • Удалённые объекты и ещё не активированные телевизоры не отображаются.

Чтобы узнать, что доступно ключу, вызовите /organizations: каждая организация возвращается с полями admin и permissions.

Если вашей системе нужна только часть данных, создайте для неё в панели управления отдельного пользователя только с нужными правами доступа, а ключ создайте в аккаунте этого пользователя.

Запрос
curl "https://api.on-cloud.live/v1/organizations" \
  -H "X-API-Key: $API_KEY"
<?php
$ch = curl_init('https://api.on-cloud.live/v1/organizations');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ['X-API-Key: ' . getenv('API_KEY')],
]);
$response = json_decode(curl_exec($ch), true);
const res = await fetch('https://api.on-cloud.live/v1/organizations', {
  headers: { 'X-API-Key': process.env.API_KEY }
});
const { data } = await res.json();
Ответ200
{
  "data": [
    {
      "uid": "8f14e45fceea167a5a36dedd4bea2543",
      "name": "Loja Centro",
      "neutral_zone": false,
      "admin": true,
      "permissions": {
        "tvs": true,
        "files": true,
        "playlists": true
      }
    },
    {
      "uid": "1679091c5a880faf6fb5e6087eb1b2dc",
      "name": "Loja Shopping Norte",
      "neutral_zone": false,
      "admin": true,
      "permissions": {
        "tvs": true,
        "files": true,
        "playlists": true
      }
    }
  ]
}
Объект другой организации404
{
  "error": {
    "code": "not_found",
    "message": "Item not found or you do not have access to it."
  }
}