Skip to content

✨ API Osteocom

  • 🧪 Entorno de pruebas:
    https://test.osteocom.me/sv6

  • 🚀 Entorno de producción:
    https://www.osteocom.me/sv6


Esta API ha sido probada en el entorno de pruebas, el de producción no ha sido probado.


Hay que pedir a David Mallo el clientId y clientSecret, él tiene para el entorno de prueba y los de producción tendrá que pedirlos a Osteocom.


Devuelve un token que se usará en el resto de APIs en Authorization: Bearer TU_TOKEN.

Devuelve la información de los productos, de ahí se cogerá el idChannel y el price para la API de Autorización para el contenido Ver aquí y el videoId para la API de token de video Ver aquí.

Devuelve el token que se usará en la siguiente API en el body como userAccessKey.

Devuelve el token que se usara en el iframe.



Permite obtener un token de autenticación, necesario para realizar cualquier otra petición a la API.

URL: /contentLicensing_login

Método: POST

Payload:

CampoTipoObligatorioDescripción
clientIdStringID único del cliente, proporcionado por Osteocom.
clientSecretStringClave secreta del cliente, proporcionada por Osteocom.

Body ejemplo:

{
"clientId":"xxxxxxxx",
"clientSecret":"xxxxxxxxx"
}
CampoTipoDescripción
tokenTypeStringToken JWT a usar como Bearer en las siguientes llamadas.
{
"token": "xxxxxxxxx.xxxxxxxxxx.xxxxxxxxxx"
}

Este token no caduca.

CódigoDescripción
200OK
401No autorizado - Cliente desconocido.


Permite acceder al catálogo de contenido del cliente.

URL: /contentLicensing_catalog

Método: POST

Headers:

Authorization: Bearer TU_TOKEN (obtenido en la API de autenticación)

Payload:

CampoTipoObligatorioDescripción
clientIdStringID único del cliente.

Body ejemplo:

{
"clientId":"xxxxxxx"
}
CampoTipoDescripción
catalogStringArray de objetos, cada uno representa un canal con detalles como autores, imágenes, vídeos, etc.
{
"catalog": [
{
"idChannel": "asdf",
"authors": [
información de los autores
],
"price": 500,
"video": [
{
"videoId": "asdf12345",
+ información del video
},
{
"videoId": "ghjk67890",
+ información del video
}
],
"title": "titulo catalogo prueba",
"subtitle": null,
"htmlDescription": null
}
]
}

idChannel: esto será el campo productId de la API Content Access Authorization. Ver aquí.

price: esto será el campo price de la API Content Access Authorization. Ver aquí.

videoId: esto será el campo videoId de la API Video Access. Ver aquí.

CódigoDescripción
200OK
404No encontrado.
500Error interno del servidor.


Gestiona la autorización de contenido tras la compra, enviando información del usuario y los cursos adquiridos.

Para esta API en las pruebas realizadas en el entorno de Pruebas cada vez que se realizaba la petición había que poner un userId distinto (inventado) ya que no permitia pedir 2 veces con el mismo userId dando ❗500 Internal Error Server❗ Creemos que en el entorno de producción eso no pasará pero no lo sabemos ya que solo podiamos probar en el entorno de pruebas.

Según lo que pone en la documentación de Osteocom: Este ID lo crea el socio y sirve para identificar al usuario. Puede usar el formato que quiera, pero debe ser único para cada cliente. Osteocom solo usa este ID para dar acceso al contenido y crear los tokens del usuario.

URL: /contentLicensing_contentAccessAuthorization

Método: POST

Headers:

Authorization: Bearer TU_TOKEN (obtenido en la API de autenticación)

Payload:

CampoTipoObligatorioDescripción
clientIdStringID único del cliente.
userIdStringID único del usuario, elegido por el propio usuario según su conveniencia.
emailStringCorreo del usuario (requerido si hay consentimiento de marketing).
marketingConsentBooleantrue si el usuario acepta comunicaciones comerciales.
nameStringNombre del usuario.
surnameStringApellido del usuario.
productsArrayLista de productos comprados con su precio correspondiente.

Body ejemplo:

{
"clientId": "xxxxxxxx",
"userId": "usuario",
"email": "email@usuario.com",
"products": [
{
"productId": "asdf",
"price": 500
}
]
}

El productId y el price usados aqui son los sacados de la respuesta en la API anterior. Ver aquí.

CampoTipoDescripción
tokenTypeStringToken para acceso al contenido comprado.
{
"token": "xxxxxxxxxxxxxx.xxxxxxxxxxxxxxxx.xxxxxxxxxxxxx"
}

Este token devuelto es el usado en la API Video Access Ver aquí en el campo userAccessKey.

Este token no caduca.

Pero aunque no caduque, solo lo obtienes 1 vez con ese usuario, al menos en las pruebas realizadas en el entorno de pruebas, creemos que en el entorno de producción esto no deberia ocurrir y se podrá pedir las veces que haga falta con el mismo userId, pero no lo sabemos al 100% ya que no hemos podido probar en producción.

CódigoDescripción
200OK
400Campo email requerido.
403Email mal formateado.
500Error interno del servidor.


Permite el acceso del usuario al contenido de vídeo previamente autorizado.

URL: /contentLicensing_videoAccess

Método: POST

Headers:

Authorization: Bearer TU_TOKEN (obtenido en la API de autenticación).

Payload:

CampoTipoObligatorioDescripción
userIdStringID único del usuario, definido por el partner.
clientIdStringID único del cliente.
videoIdStringID único del vídeo.
userAccessKeyStringClave de acceso que autentica al usuario. Respuesta de la API Content Access Authorization Ver aquí

Body ejemplo:

{
"userId": "usuario",
"clientId": "xxxxxxxxx",
"videoId": "asdf12345",
"userAccessKey": "xxxxxxxxxx.xxxxxxxxxxxx.xxxxxxxxxxxxx"
}

El videoId usado aqui es el mencionado en la API de catálogo. Ver aquí.

CampoTipoDescripción
tokenAuthVideoStringToken a utilizar como parámetro en una URL dedicada para visualizar el vídeo en un <iframe>.
{
"tokenAuthVideo": "xxxxxxxxxxxxxx.xxxxxxxxxxxxxxxx.xxxxxxxxxxxxx"
}

Este token caduca a los 15 minutos de ser creado.

Si el token caduca, al permanecer en la misma página, el video se podrá usar de todas formas. Una vez caducado el token, el enlace ya no se podrá usar desde el exterior, a menos que estes autorizado para reintentar la llamada y generar un nuevo token. Esto significa que, si el usuario actualiza la página, deberá realizar la llamada de nuevo para generar un nuevo token que se usará en la URL que genera la nueva caducidad.

CódigoDescripción
200OK
401Cliente no autorizado.
401Token de vídeo expirado.
404Vídeo no encontrado.
500Error interno del servidor.

🎬 Uso del Iframe para reproducción de videos de Osteocom

Section titled “🎬 Uso del Iframe para reproducción de videos de Osteocom”

Utiliza esta URL como la primera parte de la fuente del iframe.
La ruta predeterminada es:

<urlPrefix>/en/videoaccess
  • 🧪 Entorno de pruebas:
    https://test.osteocom.me/

  • 🚀 Entorno de producción:
    https://www.osteocom.me/

Para cargar el video, concatena el parámetro signature con el valor del tokenAuthVideo recibido de la API de acceso al video. Ver aquí.

<iframe src="https://xxx.osteocom.me/en/videoaccess?signature=tokenAuthVideo"></iframe>

Permite que el reproductor entre en modo pantalla completa.
Este atributo debe estar presente para que funcione correctamente:

<iframe src="..." allowfullscreen></iframe>

Para definir el idioma por defecto de los subtítulos, usa el parámetro adicional sublang concatenado con la URL del iframe:

<iframe src="https..............&sublang=es" allowfullscreen></iframe>
LlaveIdioma
itItaliano
enInglés
frFrancés
esEspañol

🆕 Nuevos Endpoints en la API de Osteocom Strapi

Section titled “🆕 Nuevos Endpoints en la API de Osteocom Strapi”

📂 Qué hace este endpoint:

  • 📥 Solicita el catálogo a Osteocom.
  • 🔄 Actualiza nuestra colección de productos de Osteocom.
  • 📝 Devuelve un JSON personalizado para el front, eliminando campos innecesarios.

🔑 Parámetros requeridos:

  • 🆔 productId
  • 💰 price
  • 👤 name
  • 👥 surname
  • 📧 email
  • 🎬 videoId

➡️ Este endpoint devuelve la URL para ver el video solicitado.

⚙️ Funcionalidad adicional:

  • 🔐 Realiza automáticamente la petición de tokens necesaria.