Problema en DM con OpenAPI: API del contenedor del reproductor de vídeo
Al usar Dynamic Media con la función de API abierta [ 0] y usar el código devuelto para mostrar el visor de un sitio web externo sin modificar, el código genera direcciones URL con formato incorrecto para obtener detalles de vídeo y no funciona.
Descripción description
Descripción : Cuando tomo la documentación aquí:
https://developer.adobe.com/experience-cloud/experience-manager-apis/api/stable/assets/delivery/#operation/videoPlayerDelivery
y utilice la ventana de solicitud/respuesta situada en el lado derecho de dicha ventana
documentación para probar un recurso de vídeo y hacer que devuelva el código
Creo que puedo reproducir la siguiente preocupación:
Para el bucket utilizo: "delivery-pxxxx-eyyyyy" (dominio de entrega DMwOA activado)
Por motivos de seguridad, utilizo "ninguno" para que el ejemplo sea sencillo y para demostrarlo
la seguridad no es la causa de la preocupación.
Para assetId, se utiliza "urn:aaid:aem:aaaaaaaa-bbb-cccc-dddd-eeeeeeeeeee" (assetID válido y aprobado)
Cuando uso Generar la respuesta a partir de eso, veo en la línea 157:
let origin = window.location.origin;
donde esto provoca el error que se ve en la solicitud de miniatura
en la línea 160 y en la solicitud de manifiesto en la línea 174, puesto que
window.location.origin no se proporciona desde el servidor de entrega
"https://delivery-pxxxxx-eyyyyyyy.adobeaemcloud.com" pero de su propia
servidor web como se esperaba. Debería ser 'let
origin="https://delivery-pxxxxx-eyyyyyy.adobeaemcloud.com" ' o
independientemente del servidor de envío que se envíe con la solicitud.
¿Eso es un error? ¿Cuál es la recomendación?
Resolución resolution
Lo que está viendo es esperado:
· El código devuelto por la operación de entrega del reproductor de vídeo es un fijo
Plantilla de HTML que contiene
let origin = window.location.origin;
… fetch(${origin}/adobe/assets/…)
Supone deliberadamente que se está representando desde el mismo host que
servirá para los flujos, concretamente el nivel de entrega (para su bloque de prueba)
ese sería https://delivery-pxxxxx-eyyyyyy.adobeaemcloud.com).
· Cuando ejecute ese fragmento desde el panel "Probar" de Swagger (que
se ejecuta en developer.adobe.com) o péguelo en su propio sitio,
window.location.origin ya no es igual al host de entrega. La miniatura
Por lo tanto, las capturas de manifiesto van al origen incorrecto y 404/
CORS-fail.
· El comportamiento del servicio de entrega en sí es correcto; el problema es
solo con donde se ejecuta la muestra. Porque /play es un iframe
contenedor de conveniencia no puede saber el host correcto cuando se ejecuta fuera de
dominio de envío.
Forma recomendada de probar o incrustar un reproductor de marca:
-
Llame al manifiesto directamente, omitiendo /play:
· HLS /adobe/assets/{assetId}/manifest.m3u8
· DASH /adobe/assets/{assetId}/manifest.mpd
-
Incluya esa URL en su propia instancia de Video.js / hls.js / dash.js.
(Consulte Documentos de API de entrega: API de entrega).
Si debe seguir utilizando /play, debe alojar el iframe desde el
delivery-pxxxxx-eyyyyy o ajuste el HTML generado para que
el origen está codificado en ese host.