Premiers pas
Ce que chaque utilisateur peut voir
Une clé voit exactement ce que son utilisateur voit dans le panneau de contrôle. Il n'y a rien à configurer dans l'API : les règles découlent des organisations et des permissions de l'utilisateur.
Uniquement les organisations de l'utilisateur
L'API ne prend en compte que les organisations liées à l'utilisateur, celles qu'il peut choisir dans le panneau de contrôle.
L'administrateur voit tout dans l'organisation
Un administrateur de l'organisation, ou de l'organisation principale, voit toutes ses TVs, tous ses fichiers et toutes ses playlists.
Pour les autres, tout dépend des permissions
Pour les autres utilisateurs, ce sont les permissions de voir les TVs, les fichiers et les playlists de chaque organisation qui s'appliquent, les mêmes qui donnent accès à ces pages dans le panneau de contrôle.
Les changements s'appliquent immédiatement
Une permission retirée, une organisation supprimée ou un utilisateur désactivé dans le panneau de contrôle prend effet dès la requête suivante.
Ce qui est exclu
- Les éléments des organisations sans permission n'apparaissent pas dans les listes. En demander un directement renvoie
404, comme s'il n'existait pas. - Dans une playlist, un fichier que l'utilisateur ne peut pas voir est renvoyé avec
fileànull. Les TVs d'une playlist et les playlists d'un fichier n'affichent que ce que l'utilisateur peut voir. - Les éléments supprimés et les TVs qui n'ont pas encore été activées n'apparaissent pas.
Pour savoir ce qu'une clé peut consulter, appelez /organizations : chaque organisation est renvoyée avec admin et permissions.
Si votre système n'a besoin que d'une partie des données, créez dans le panneau de contrôle un utilisateur qui lui est dédié, avec uniquement les permissions nécessaires, et générez la clé dans le compte de cet utilisateur.
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."
}
}