Primeros pasos

Qué puede ver cada usuario

La clave ve exactamente lo mismo que ve en el panel el usuario al que pertenece. No hay que configurar nada en la API: las reglas salen de las organizaciones y los permisos del usuario.

Solo las organizaciones del usuario

La API solo tiene en cuenta las organizaciones vinculadas al usuario, las mismas que puede elegir en el panel.

El administrador lo ve todo en su organización

Quien es administrador de la organización, o de la organización principal, ve todas sus TVs, archivos y listas de reproducción.

Los demás dependen de los permisos

Para el resto de usuarios se aplican, en cada organización, los permisos para ver TVs, archivos y listas de reproducción, los mismos que dan acceso a esas páginas en el panel.

Los cambios se aplican al instante

Si en el panel se retira un permiso, se quita una organización o se desactiva un usuario, el cambio se aplica ya en la siguiente petición.

Qué queda fuera

  • Los elementos de organizaciones sin permiso no aparecen en los listados. Si se pide uno de ellos directamente, se obtiene 404, como si no existiera.
  • En una lista de reproducción, un archivo que el usuario no puede ver viene con file igual a null. Las TVs de una lista y las listas de un archivo muestran solo lo que el usuario puede ver.
  • Los elementos eliminados y las TVs que aún no se han activado no aparecen.

Para saber qué puede consultar una clave, llame a /organizations: cada organización incluye admin y permissions.

Si su sistema solo necesita una parte de los datos, cree en el panel un usuario exclusivo para él, con los permisos imprescindibles, y genere la clave en la cuenta de ese usuario.

Petición
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();
Respuesta200
{
  "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
      }
    }
  ]
}
Elemento de otra organización404
{
  "error": {
    "code": "not_found",
    "message": "Item not found or you do not have access to it."
  }
}