Autenticación
Cada llamada (salvo el endpoint de token de OAuth) lleva un token en la cabecera:
Authorization: Bearer vn_live_…Los tokens y los clientes OAuth los creas en el CMS, en Ajustes › Acceso a la API. Para ello necesitas el permiso para la API (consulta Gestionar permisos).
Token de API
Sección titulada «Token de API»La vía más sencilla para tus propios scripts y servidores: un token pertenece a tu cuenta, tiene permisos fijos y, si quieres, caduca. En el CMS lo revocas en cualquier momento y deja de ser válido al instante. El token se muestra una sola vez; guárdalo en un gestor de contraseñas o de secretos.
Cliente OAuth: de servidor a servidor
Sección titulada «Cliente OAuth: de servidor a servidor»Si quieres que tu aplicación obtenga ella misma tokens de corta duración, creas un cliente OAuth e intercambias el ID de cliente y el secreto por un token:
curl https://cloud.viewneo.com/api/public/v1/oauth/token \ -H "Content-Type: application/json" \ -d '{ "grant_type": "client_credentials", "client_id": "'"$CLIENT_ID"'", "client_secret": "'"$CLIENT_SECRET"'", "scope": "media:read playlists:read" }'Un token obtenido así es válido durante una hora. Después obtienes uno nuevo con la misma llamada. scope es opcional y solo puede restringir los permisos del cliente.
Cliente OAuth: en nombre de un usuario
Sección titulada «Cliente OAuth: en nombre de un usuario»Para aplicaciones que trabajan en nombre de una persona de tu equipo, envías al usuario a la página de consentimiento del CMS:
https://cloud.viewneo.com/oauth/authorize?client_id=…&redirect_uri=…&scope=media:read%20playlists:read&state=…Si el usuario da su consentimiento, el navegador vuelve a tu redirect_uri con ?code=…. El código lo intercambias en el endpoint de token con grant_type=authorization_code. Se puede usar una sola vez y es válido durante cinco minutos; la redirect_uri debe coincidir exactamente con una de las registradas en el cliente.
La respuesta contiene además un refresh token, con el que obtienes un token nuevo sin un nuevo consentimiento (grant_type=refresh_token):
- Cada renovación devuelve un refresh token nuevo e invalida el anterior. Guarda siempre el más reciente.
- Si se vuelve a usar un refresh token antiguo, viewneo bloquea toda la cadena y el usuario tiene que dar de nuevo su consentimiento.
- Un refresh token es válido durante 90 días desde su último uso. También termina si se revoca el cliente, se cancela el complemento API o cambian los permisos del usuario.
Permisos (scopes)
Sección titulada «Permisos (scopes)»Un token nunca puede hacer más de lo que permiten sus permisos, ni más de lo que puede hacer la persona que lo creó.
| Scope | permite | Permiso en el CMS |
|---|---|---|
media:read | leer archivos multimedia y carpetas | Multimedia: Ver |
media:write | subir, renombrar, mover y eliminar archivos multimedia | Multimedia: Gestionar |
playlists:read | leer playlists | Playlists: Ver |
playlists:write | crear, renombrar y eliminar playlists; cambiar entradas | Playlists: Gestionar |
devices:read | leer dispositivos y grupos | Dispositivos: Ver |
devices:write | activar y configurar dispositivos, gestionar grupos | Dispositivos: Gestionar |
reports:read | pruebas de reproducción e informes | Dispositivos: Ver |
Un scope :write incluye el :read correspondiente. Si falta el scope necesario, la API responde con 403 FORBIDDEN.