Zum Inhalt springen

Embed-Sitzungen

Eine Embed-Sitzung ist die kurzlebige Berechtigung, mit der ein RealityTwin in Ihrer Seite gerendert werden kann. Ihr Backend erstellt sie über die RealityConnect API, leitet die browsersicheren Werte an Ihr Frontend weiter, und Ihr Frontend übergibt sie an das SDK. Diese Seite ist die Referenz für diese beiden Endpunkte, für jedes Feld, das sie zurückgeben, und für den einen Wert, den Sie selbst zusammensetzen müssen: die iframe-URL.


Beide Operationen liegen auf dem Zwilling-Kontext und sind in der interaktiven API-Referenz veröffentlicht, gekennzeichnet als experimentell.

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

{api_url} ist Ihre regionale API-Basis, die bereits auf /realityconnect-api endet. Ein vollständiger Aufruf sieht daher so aus:

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

{contextId} ist die ID des Zwillings, den Sie einbetten möchten. RealityPlan wird hier nicht unterstützt.

Beide Operationen erfordern zwei Scopes auf demselben Access Token:

ScopeWofür
read:twinDen Zwilling lesen, auf den die Sitzung abzielt
embed:twinEine Embed-Sitzung dafür ausstellen

Ein Token, das nur einen der beiden enthält, erhält 403 Forbidden mit Insufficient OAuth scopes. Fügen Sie beide zu Ihrer OAuth-Anwendung hinzu, bevor Sie beginnen; siehe die Anleitung Client-Credentials-Flow.

Embed-Sitzungen nutzen außerdem ein eigenes, engeres Rate-Limit-Budget als der Rest der API. Erstellen Sie deshalb eine Sitzung pro Betrachtungssitzung und nicht pro Seitenaufruf.

{
"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"
}
FeldWas es istSDK-Konfiguration
iframeUrlDie Basis-URL des Embed-Viewers. Vervollständigen Sie sie vor der Verwendung – siehe Die iframe-URL zusammensetzen.iframeUrl, nachdem Sie die Embed-Route angehängt haben
tokenDas signierte Sitzungs-JWT. Das SDK benötigt es; der eingebettete Zwilling authentifiziert sich damit.platformJWT
refreshTokenBase64-Secret, das zu dieser Sitzung gehört. Bewahren Sie es in Ihrem Backend auf.
expiresAtISO-8601-Zeitstempel, bis zu dem Sie die Sitzung erneuern sollten – einige Minuten, bevor token selbst nicht mehr akzeptiert wird.
apiUrlDas regionale RealityTwin-Backend, mit dem der eingebettete Zwilling kommuniziert (…/reality-twin). Nicht die {api_url}, die Sie oben aufgerufen haben – die Sitzungs-Endpunkte liegen nicht darauf.backendUrl

refresh-session gibt dieselbe Struktur ohne iframeUrl und apiUrl zurück. Sie benötigen diese beiden nur einmal: iframeUrl ist innerhalb einer Umgebung konstant, und apiUrl ist für die Region Ihrer Organisation konstant.

iframeUrl ist eine Basis-URL, kein fertiges src. Sie ist innerhalb einer Umgebung für jeden Zwilling dieselbe Konstante – in der Produktion https://embed.prevu3d.com/reality-twin. Hängen Sie die Embed-Route daran an:

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

Die Zwilling-ID muss nicht in der URL stehen – das Sitzungs-Token identifiziert den Zwilling bereits, und der Viewer liest ihn daraus.

Verbinden Sie beide mit genau einem Schrägstrich: iframeUrl endet ohne Schrägstrich, `${iframeUrl}/embed` ist also korrekt.

Übergeben Sie die vollständige URL an das SDK:

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

Das Sitzungs-JWT gelangt über den INIT_CONFIG-postMessage-Handshake des SDK zum iframe, als Konfigurationswert platformJWT. Hängen Sie es nicht als Query-Parameter an die iframe-URL an – der eingebettete Zwilling liest keinen solchen Parameter, und ein aktives Credential in einer URL gelangt so in Browserverlauf, Referrer-Header und Server-Logs.

Aus demselben Grund erwartet die Embed-Seite, innerhalb des iframe des SDK zu laufen. Eine vollständige URL, die Sie für sich allein in einen Browser-Tab einfügen, lädt keinen Zwilling, weil dort nichts vorhanden ist, das ihr das Token und die Backend-URL übergibt.

Sitzungen sind kurzlebig. Rufen Sie vor expiresAt von Ihrem Backend aus refresh-session mit dem gespeicherten refreshToken auf, persistieren Sie das neue und übergeben Sie das neue token mit twin.updateAccessToken(newAccessToken) an das laufende SDK – der iframe muss nicht neu erstellt werden. Siehe Schritt 4 von Erste Schritte für das vollständige Muster.