Primeiros passos
O que cada usuário pode ver
A chave enxerga exatamente o que o usuário dela vê no painel. Não é preciso configurar nada na API: as regras vêm das empresas e das permissões do usuário.
Só as empresas do usuário
A API considera apenas as empresas ligadas ao usuário, as mesmas que ele pode escolher no painel.
Administrador vê tudo da empresa
Quem é administrador da empresa, ou da empresa principal, vê todas as TVs, os arquivos e as listas de reprodução dela.
Os demais dependem das permissões
Para os outros usuários valem, em cada empresa, as permissões de ver TVs, arquivos e listas de reprodução, as mesmas que liberam essas páginas no painel.
Mudanças valem na hora
Permissão tirada, empresa removida ou usuário desativado no painel já valem na próxima requisição.
O que fica de fora
- Itens de empresas sem permissão não aparecem nas listagens. Pedir um deles diretamente dá
404, como se não existisse. - Em uma lista de reprodução, um arquivo que o usuário não pode ver vem com
fileigual anull. As TVs de uma lista e as listas de um arquivo mostram só o que o usuário pode ver. - Itens apagados e TVs que ainda não foram ativadas não aparecem.
Para saber o que uma chave pode consultar, chame /organizations: cada empresa vem com admin e permissions.
Se o seu sistema só precisa de parte dos dados, crie no painel um usuário só para ele, com as permissões necessárias, e gere a chave na conta desse usuário.
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();{
"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
}
}
]
}{
"error": {
"code": "not_found",
"message": "Item not found or you do not have access to it."
}
}