Primeros pasos

Qué puede ver cada usuario

La clave ve exactamente lo mismo que ve en el panel el usuario al que pertenece. No hace falta 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 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 los demás usuarios rigen, en cada organización, los permisos para ver TVs, archivos y listas de reproducción, los mismos que habilitan esas páginas en el panel.

Los cambios rigen al instante

Si en el panel se saca un permiso, se quita una organización o se desactiva un usuario, el cambio ya rige en la siguiente solicitud.

Qué queda afuera

  • Los elementos de organizaciones sin permiso no aparecen en los listados. Si se pide uno de ellos directamente, la respuesta es 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 todavía no se activaron no aparecen.

Para saber qué puede consultar una clave, llamá a /organizations: cada organización viene con admin y permissions.

Si tu sistema solo necesita una parte de los datos, creá en el panel un usuario exclusivo para él, con los permisos necesarios, y generá la clave en la cuenta de ese usuario.

Solicitud
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."
  }
}