Integration in eine Adobe-fremde Anwendung integrate-asset-selector-non-adobe-app

Mit dem Asset-Wähler können Sie die Integration mit verschiedenen Adobe-fremden Anwendungen oder Anwendungen von Drittanbietern durchführen, um eine nahtlose Zusammenarbeit zu ermöglichen.

Voraussetzungen prereqs-non-adobe-app

Wenden Sie die folgenden Voraussetzungen an, wenn Sie den Asset-Wähler mit einer Nicht-Adobe-Anwendung integrieren:

Der Asset-Wähler unterstützt die Authentifizierung für das Experience Manager Assets-Repository mit Eigenschaften des Identity Management System (IMS), z. B. imsScope oder imsClientID, wenn Sie es mit einer Nicht-Adobe-Anwendung integrieren.

Konfigurieren des Asset-Wählers mit einer Adobe-fremden Anwendung configure-non-adobe-app

Um den Asset-Wähler für eine Adobe-fremde Anwendung zu konfigurieren, müssen Sie zunächst ein Support-Ticket für die Bereitstellung einreichen und dann die Integrationsschritte befolgen.

Einreichen eines Support-Tickets log-a-support-ticket

Schritte zum Einreichen eines Support-Tickets über die Admin Console:

  1. Fügen Sie Asset-Wähler mit AEM Assets zum Titel des Tickets hinzu.

  2. Geben Sie in der Beschreibung die folgenden Details an:

    • Experience Manager Assets as a Cloud Service-URL (Programm-ID und Umgebungs-ID).
    • Domain-Namen, auf denen die Nicht-Adobe-Web-Anwendung gehostet wird.

Integrationsschritte non-adobe-app-integration-steps

Verwenden Sie diese Beispieldatei index.html zur Authentifizierung bei der Integration des Asset-Wählers mit einer Adobe-fremden Anwendung.

Greifen Sie mithilfe des Script-Tags auf das Asset-Wählerpaket zu, wie in Zeile 9 bis Zeile 11 der index.html-Beispieldatei dargestellt.

In Zeile 14 bis Zeile 38 des Beispiels werden die Eigenschaften des IMS-Flusses beschrieben, z. B. imsClientId, imsScope und redirectURL. Die Funktion erfordert, dass Sie mindestens eine der Eigenschaften imsClientId und imsScope definieren. Wenn Sie keinen Wert für redirectURL definieren, wird die registrierte Umleitungs-URL für die Client-ID verwendet.

Da Sie kein imsToken generiert haben, verwenden Sie die Funktionen registerAssetsSelectorsAuthService und renderAssetSelectorWithAuthFlow, wie in den Zeilen 40 bis 50 der index.html-Beispieldatei dargestellt. Verwenden Sie die Funktion registerAssetsSelectorsAuthService vor renderAssetSelectorWithAuthFlow, um das imsToken mit dem Asset-Wähler zu registrieren. Adobe empfiehlt, registerAssetsSelectorsAuthService aufzurufen, wenn Sie die Komponente instanziieren.

Definieren Sie die Authentifizierung und andere Zugriffseigenschaften für Assets as a Cloud Service im Abschnitt const props, wie in Zeile 54 bis Zeile 60 der index.html-Beispieldatei dargestellt.

Die globale Variable PureJSSelectors, erwähnt in Zeile 65, wird zum Rendern des Asset-Wählers im Webbrowser verwendet.

Der Asset-Wähler wird im Container-Element <div> gerendert, wie in Zeile 74 bis Zeile 81 angegeben. Das Beispiel verwendet ein Dialogfeld zum Anzeigen des Asset-Wählers.

<!DOCTYPE html>
<html>

<head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta charset="utf-8">
    <title>Asset Selectors</title>
    <link rel="stylesheet" href="index.css">
    <script id="asset-selector"
        src="https://experience.adobe.com/solutions/CQ-assets-selectors/static-assets/resources/assets-selectors.js"></script>
    <script>

        const imsProps = {
            imsClientId: "<obtained from IMS team>",
            imsScope: "openid, <other scopes>",
            redirectUrl: window.location.href,
            modalMode: true, // false to open in a full page reload flow
            onImsServiceInitialized: (service) => {
                // invoked when the ims service is initialized and is ready
                console.log("onImsServiceInitialized", service);
            },
            onAccessTokenReceived: (token) => {
                console.log("onAccessTokenReceived", token);
            },
            onAccessTokenExpired: () => {
                console.log("onAccessTokenError");
                // re-trigger sign-in flow
            },
            onErrorReceived: (type, msg) => {
                console.log("onErrorReceived", type, msg);
            },
        }

        function load() {
            const registeredTokenService = PureJSSelectors.registerAssetsSelectorsAuthService(imsProps);
            imsInstance = registeredTokenService;
        };

        // initialize the IMS flow before attempting to render the asset selector
        load();


        //function that will render the asset selector
            const otherProps = {
            // any other props supported by asset selector
            }
            const assetSelectorProps = {
                "imsOrg": "imsorg",
                ...otherProps
            }
             // container element on which you want to render the AssetSelector/DestinationSelector component
            const container = document.getElementById('asset-selector');

            /// Use the PureJSSelectors in globals to render the AssetSelector/DestinationSelector component
            PureJSSelectors.renderAssetSelectorWithAuthFlow(container, assetSelectorProps, () => {
                const assetSelectorDialog = document.getElementById('asset-selector-dialog');
                assetSelectorDialog.showModal();
            });
        }
    </script>

</head>
<body class="asset-selectors">
    <div>
        <button onclick="renderAssetSelectorWithAuthFlowFlow()">Asset Selector - Select Assets with Ims Flow</button>
    </div>
        <dialog id="asset-selector-dialog">
            <div id="asset-selector" style="height: calc(100vh - 80px); width: calc(100vw - 60px); margin: -20px;">
            </div>
        </dialog>
    </div>
</body>

</html>

Zugriff auf das Bereitstellungs-Repository nicht möglich unable-to-access-delivery-repository

TIP
Wenn Sie den Asset-Wähler mithilfe des Workflows zum Registrieren und Anmelden integriert haben, aber trotzdem nicht auf das Bereitstellungs-Repository zugreifen können, stellen Sie sicher, dass die Browser-Cookies bereinigt wurden. Andernfalls tritt der Fehler invalid_credentials All session cookies are empty in der Konsole auf.
recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab