Ga naar inhoud

Embed-sessies

Een embed-sessie is de kortlevende toestemming waarmee een RealityTwin binnen uw pagina kan worden gerenderd. Uw backend maakt er een aan via de RealityConnect API, stuurt de browserveilige waarden door naar uw front-end, en uw front-end geeft ze door aan de SDK. Deze pagina is de referentie voor die twee endpoints, voor elk veld dat ze retourneren en voor de ene waarde die u zelf moet samenstellen: de iframe-URL.


Beide bewerkingen bevinden zich op de twin-context en zijn gepubliceerd in de interactieve API-referentie, gemarkeerd als experimenteel.

MethodePadBody
GET{api_url}/v1/twin/{contextId}/embed/create-sessionGeen
POST{api_url}/v1/twin/{contextId}/embed/refresh-session{ "refreshToken": "<base64 refresh token>" }

{api_url} is uw regionale API-basis, die al eindigt op /realityconnect-api. Een volledige aanroep ziet er dus zo uit:

GET https://api-ue1.prevu3d.com/realityconnect-api/v1/twin/{contextId}/embed/create-session
Authorization: Bearer {access_token}

{contextId} is de ID van de twin die u wilt insluiten. RealityPlan wordt hier niet ondersteund.

Beide bewerkingen vereisen twee scopes op hetzelfde access token:

ScopeWaarom
read:twinDe twin lezen waarop de sessie betrekking heeft
embed:twinEr een embed-sessie voor aanmaken

Een token met slechts één van de twee ontvangt 403 Forbidden met Insufficient OAuth scopes. Voeg beide toe aan uw OAuth-applicatie voordat u begint; zie de gids Client Credentials-flow.

Embed-sessies gebruiken bovendien een eigen, strakker rate-limit-budget dan de rest van de API: maak dus één sessie per kijksessie in plaats van per paginaweergave.

{
"iframeUrl": "https://embed.prevu3d.com/reality-twin",
"token": "eyJhbGciOiJFUzUxMi...",
"refreshToken": "ZXhhbXBsZS1yZWZyZXNoLXRva2Vu",
"expiresAt": "2026-09-04T13:55:00.000Z",
"apiUrl": "https://api-ue1.prevu3d.com/reality-twin"
}
VeldWat het isSDK-configuratie
iframeUrlDe basis-URL van de embed-viewer. Vul deze aan vóór gebruik — zie De iframe-URL samenstellen.iframeUrl, nadat u de embed-route hebt toegevoegd
tokenHet ondertekende sessie-JWT. De SDK vereist het; de ingesloten twin authenticeert zich ermee.platformJWT
refreshTokenBase64-geheim dat bij deze sessie hoort. Bewaar het op uw backend.
expiresAtISO 8601-tijdstempel waarvóór u de sessie moet vernieuwen — enkele minuten voordat token zelf niet langer wordt geaccepteerd.
apiUrlDe regionale RealityTwin-backend waarmee de ingesloten twin communiceert (…/reality-twin). Niet de {api_url} die u hierboven hebt aangeroepen — de sessie-endpoints bevinden zich daar niet.backendUrl

refresh-session retourneert dezelfde vorm zonder iframeUrl en apiUrl. U hebt die twee maar één keer nodig: iframeUrl is constant binnen de omgeving en apiUrl is constant voor de regio van uw organisatie.

iframeUrl is een basis-URL, geen afgeronde src. Het is dezelfde constante voor elke twin binnen een omgeving — in productie https://embed.prevu3d.com/reality-twin. Voeg de embed-route eraan toe:

const src = `${session.iframeUrl}/embed`;
// https://embed.prevu3d.com/reality-twin/embed

De twin-ID hoeft niet in de URL te staan — het sessietoken identificeert de twin al, en de viewer leest die daaruit.

Verbind de twee met precies één schuine streep: iframeUrl eindigt niet op een schuine streep, dus `${iframeUrl}/embed` is correct.

Geef de complete URL door aan de SDK:

RealityConnectEmbed.init({
iframeUrl: `${session.iframeUrl}/embed`,
backendUrl: session.apiUrl,
platformJWT: session.token,
elementId: 'twin-container',
});

Het sessie-JWT reist naar het iframe via de INIT_CONFIG-postMessage-handshake van de SDK, als de configuratiewaarde platformJWT. Voeg het niet als queryparameter toe aan de iframe-URL — de ingesloten twin leest die niet, en een actieve credential in een URL plaatsen stelt deze bloot aan browsergeschiedenis, referrer-headers en serverlogs.

Om dezelfde reden verwacht de embed-pagina dat zij binnen het iframe van de SDK draait. Een complete URL op zichzelf in een browsertabblad plakken laadt geen twin, omdat er dan niets is dat het token en de backend-URL aanreikt.

Sessies zijn kortlevend. Roep vóór expiresAt vanuit uw backend refresh-session aan met het opgeslagen refreshToken, bewaar het nieuwe en geef het nieuwe token door aan de actieve SDK met twin.updateAccessToken(newAccessToken) — het iframe hoeft niet opnieuw te worden aangemaakt. Zie Stap 4 van Aan de slag voor het volledige patroon.