Integrieren des Asset-Wählers in eine Adobe-Anwendung integrate-asset-selector-with-adobe-app

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

Voraussetzungen prereqs-adobe-app

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

Integrieren des Asset-Wählers mit einer Adobe-Anwendung adobe-app-integration-vanilla

Das folgende Beispiel zeigt die Verwendung des Asset-Wählers bei Ausführung einer Adobe-Anwendung unter Unified Shell oder wenn Sie bereits imsToken für die Authentifizierung generiert haben.

Fügen Sie das Asset-Wähler-Paket mit dem script-Tag in Ihren Code ein, wie in Zeilen 6 bis 15 des folgenden Beispiels zu sehen. Sobald das Skript geladen ist, kann die globale Variable PureJSSelectors verwendet werden. Definieren Sie die Eigenschaften des Asset-Wählers wie in Zeilen 16 bis 23 zu sehen. Die Eigenschaften imsOrg und imsToken sind beide für die Authentifizierung in der Adobe-Anwendung erforderlich. Die handleSelection-Eigenschaft wird verwendet, um die ausgewählten Assets zu behandeln. Um den Asset-Wähler zu rendern, rufen Sie die renderAssetSelector-Funktion wie in Zeile 17 erwähnt auf. Der Asset-Wähler wird im Container-Element <div> angezeigt, wie in Zeilen 21 und 22 zu sehen.

Wenn Sie diese Schritte befolgen, können Sie den Asset-Wähler mit Ihrer Adobe-Anwendung verwenden.

<!DOCTYPE html>
<html>
<head>
    <title>Asset Selector</title>
    <script src="https://experience.adobe.com/solutions/CQ-assets-selectors/static-assets/resources/assets-selectors.js"></script>
    <script>
        // get the container element in which we want to render the AssetSelector component
        const container = document.getElementById('asset-selector-container');
        // imsOrg and imsToken are required for authentication in Adobe application
        const assetSelectorProps = {
            imsOrg: 'example-ims@AdobeOrg',
            imsToken: "example-imsToken",
            apiKey: "example-apiKey-associated-with-imsOrg",
            handleSelection: (assets: SelectedAssetType[]) => {},
        };
        // Call the `renderAssetSelector` available in PureJSSelectors globals to render AssetSelector
        PureJSSelectors.renderAssetSelector(container, assetSelectorProps);
    </script>
</head>

<body>
    <div id="asset-selector-container" style="height: calc(100vh - 80px); width: calc(100vw - 60px); margin: -20px;">
    </div>
</body>

</html>

ImsAuthProps ims-auth-props

Die ImsAuthProps-Eigenschaften definieren die Authentifizierungsinformationen und den Ablauf, mit dem der Asset-Wähler ein imsToken abruft. Durch Festlegen dieser Eigenschaften können Sie steuern, wie sich der Authentifizierungsfluss verhält, und Listener für verschiedene Authentifizierungsereignisse registrieren.

Eigenschaftsname
Beschreibung
imsClientId
Ein Zeichenfolgenwert, der die für Authentifizierungszwecke verwendete IMS-Client-ID darstellt. Dieser Wert wird von Adobe bereitgestellt und ist spezifisch für Ihre Adobe AEM CS-Organisation.
imsScope
Beschreibt die bei der Authentifizierung verwendeten Bereiche. Die Bereiche bestimmen den Umfang des Zugriffs, den die Anwendung auf die Ressourcen Ihrer Organisation hat. Mehrere Bereiche werden durch Kommas voneinander getrennt.
redirectUrl
Stellt die URL dar, an die Benutzende nach der Authentifizierung weitergeleitet werden. Dieser Wert wird normalerweise auf die aktuelle URL der Anwendung gesetzt. Wenn keine redirectUrl bereitgestellt wird, verwendet ImsAuthService die zum Registrieren der imsClientId verwendete redirectUrl
modalMode
Ein boolescher Wert, der angibt, ob der Authentifizierungsfluss in einem Modal (Popup-Fenster) angezeigt werden soll oder nicht. Wenn true festgelegt ist, wird der Authentifizierungsfluss in einem Popup-Fenster angezeigt. Wenn false festgelegt ist, wird der Authentifizierungsfluss bei vollständigem Neuladen der Seite angezeigt. Hinweis: Für ein besseres Anwendererlebnis können Sie diesen Wert dynamisch steuern, wenn Popup-Fenster des Browsers deaktiviert sind.
onImsServiceInitialized
Eine Rückruffunktion, die aufgerufen wird, wenn der Adobe IMS-Authentifizierungsdienst initialisiert wird. Diese Funktion akzeptiert einen Parameter namens service, ein Objekt, das den Adobe IMS-Dienst darstellt. Siehe ImsAuthService für weitere Informationen.
onAccessTokenReceived
Eine Rückruffunktion, die aufgerufen wird, wenn ein imsToken vom Adobe IMS-Authentifizierungsdienst empfangen wird. Diese Funktion akzeptiert einen Parameter namens imsToken, eine Zeichenfolge, die das Zugriffstoken darstellt.
onAccessTokenExpired
Eine Rückruffunktion, die aufgerufen wird, wenn ein Zugriffstoken abgelaufen ist. Diese Funktion wird normalerweise verwendet, um einen neuen Authentifizierungsfluss auszulösen und so ein neues Zugriffstoken zu erhalten.
onErrorReceived
Eine Rückruffunktion, die aufgerufen wird, wenn während der Authentifizierung ein Fehler auftritt. Diese Funktion akzeptiert zwei Parameter: den Fehlertyp und die Fehlermeldung. Der Fehlertyp ist eine Zeichenfolge, die den Fehlertyp darstellt, und die Fehlermeldung ist eine Zeichenfolge, die die Fehlermeldung darstellt.

ImsAuthService ims-auth-service

Die ImsAuthService-Klasse regelt den Authentifizierungsfluss für den Asset-Wähler. Sie ist für den Erhalt eines imsToken über den Adobe IMS-Authentifizierungsdienst verantwortlich. Das imsToken wird verwendet, um die Benutzerin oder den Benutzer zu authentifizieren und den Zugriff auf das Adobe Experience Manager as a Cloud Service Assets-Repository zu autorisieren. ImsAuthService verwendet die ImsAuthProps-Eigenschaften, um den Authentifizierungsfluss zu steuern und Listener für verschiedene Authentifizierungsereignisse zu registrieren. Sie können die praktische Funktion registerAssetsSelectorsAuthService zum Registrieren der ImsAuthService-Instanz mit dem Asset-Wähler verwenden. Die folgenden Funktionen sind in der ImsAuthService-Klasse verfügbar. Wenn Sie jedoch die Funktion registerAssetsSelectorsAuthService verwenden, müssen Sie diese Funktionen nicht direkt aufrufen.

Funktionsname
Beschreibung
isSignedInUser
Bestimmt, ob die Person derzeit beim Dienst angemeldet ist, und gibt entsprechend einen booleschen Wert zurück.
getImsToken
Ruft das Authentifizierungs-imsToken für die derzeit angemeldete Person ab, das zum Authentifizieren von Anforderungen für andere Dienste wie zum Beispiel zum Generieren von Asset-Ausgabedarstellungen verwendet werden kann.
signIn
Startet den Anmeldeprozess für die Person. Diese Funktion verwendet ImsAuthProps, um die Authentifizierung in einem Popup-Fenster oder beim vollständigem Neuladen einer Seite anzuzeigen
signOut
Meldet die Person vom Dienst ab, macht ihr Authentifizierungs-Token ungültig und fordert sie auf, sich erneut anzumelden, um auf geschützte Ressourcen zuzugreifen. Durch Aufrufen dieser Funktion wird die aktuelle Seite neu geladen.
refreshToken
Aktualisiert das Authentifizierungs-Token für die derzeit angemeldete Person, verhindert das Ablaufen des Tokens und stellt einen unterbrechungsfreien Zugriff auf geschützte Ressourcen sicher. Gibt ein neues Authentifizierungs-Token zurück, das für nachfolgende Anforderungen verwendet werden kann.

Validierung mit bereitgestelltem IMS-Token validation-ims-token

<script>
    const apiToken="<valid IMS token>";
    function handleSelection(selection) {
    console.log("Selected asset: ", selection);
    };
    function renderAssetSelectorInline() {
    console.log("initializing Asset Selector");
    const props = {
    "repositoryId": "delivery-p64502-e544757.adobeaemcloud.com",
    "apiKey": "ngdm_test_client",
    "imsOrg": "<IMS org>",
    "imsToken": apiToken,
    handleSelection,
    hideTreeNav: true
    }
    const container = document.getElementById('asset-selector-container');
    PureJSSelectors.renderAssetSelector(container, props);
    }
    $(document).ready(function() {
    renderAssetSelectorInline();
    });
</script>

Registrieren von Rückrufen des IMS-Dienstes register-callback-ims-service

// object `imsProps` to be defined as below
let imsProps = {
    imsClientId: <IMS Client Id>,
        imsScope: "openid",
        redirectUrl: window.location.href,
        modalMode: true,
        adobeImsOptions: {
            modalSettings: {
            allowOrigin: window.location.origin,
},
        useLocalStorage: true,
},
onImsServiceInitialized: (service) => {
            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);
},
}
recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab