Problem med DM med OpenAPI - API för videospelarbehållare
När du använder DynamicMedia med öppna API:er-funktionen [ ] och använder den kod som returnerats för att visa visningsprogrammet från en extern webbplats utan att ändras, genererar koden felformaterade URL:er för att hämta videoinformation och fungerar inte.
Beskrivning description
Beskrivning : När jag gör det här:
https://developer.adobe.com/experience-cloud/experience-manager-apis/api/stable/assets/delivery/#operation/videoPlayerDelivery
och använd fönstret för begäran/svar till höger om det
dokumentation för att testa en videoresurs och få den att returnera koden
Jag tror att jag kan återge följande oro:
För bucket jag använder:"delivery-pxxx-eyyyyy" (aktiverad DMwOA-leveransdomän)
Av säkerhetsskäl använder jag "none" för att göra exemplet enkelt och visa att
säkerheten är inte orsaken till problemet.
För assetId använder jag "urn:aaid:aem:aaaaaaa-bbbb-cccc-dddd-eeeeeee" (giltigt och godkänt assetID)
När jag använder Generera svaret från det ser jag på rad 157:
let origin = window.location.origin;
där det leder till det fel du ser från miniatyrbildsbegäran
på rad 160 och på manifestbegäran på rad 174, eftersom
window.location.origin hanteras inte från leveransservern
"https://delivery-pxxxxx-eyyyyyyy.adobeaemcloud.com", men från din egen
webbserver som förväntat. Det borde vara
origin="https://delivery-pxxxxx-eyyyyyy.adobeaemcloud.com" eller
oavsett vilken leveransserver som skickas med begäran.
Är det en bugg? Vad är rekommendationen?
Upplösning resolution
Vad du ser är förväntat:
・ Koden som returneras av Video Player Delivery är en fast
HTML-mall som innehåller
let origin = window.location.origin;
… fetch(${origin}/adobe/assets/…)
Den antar avsiktligt att den återges från samma värd som
betjänar strömmarna - det vill säga leveransnivån (för din testbucket)
som skulle vara https://delivery-pxxxxx-eyyyyyy.adobeaemcloud.com).
・ När du kör det fragmentet från panelen Testa i Swagger (som
kör på developer.adobe.com) eller klistrar in den på din egen webbplats,
window.location.origin är inte längre lika med leveransvärden. Miniatyrbilden
och manifesterade foster hamnar därför i fel ursprung och 404/
CORS-failed.
・ Beteendet hos själva leveranstjänsten är korrekt; problemet är
bara med var exemplet körs. Eftersom /play är en iframe
den inte känner till rätt värd när den körs utanför
leveransdomän.
Rekommenderat sätt att testa eller bädda in en profilerad spelare:
-
Anropa manifestet direkt, kringgå /play:
・ HLS /adobe/assets/{assetId}/manifest.m3u8
・ DASH /adobe/assets/{assetId}/manifest.mpd
-
Lägg URL:en i din egen Video.js / hls.js / dash.js-instans.
(Se Leverans-API-dokument: Leverans-API:er.)
Om du måste fortsätta använda /play måste du vara värd för iframe-elementet från
delivery-pxxxxx-eyyyyy domain eller justera den genererade HTML så att
origo är hårdkodad för den värden.