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:
- Kommunikationsmethoden
- imsOrg
- imsToken
- apikey
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.
imsClientId
imsScope
redirectUrl
redirectUrl
bereitgestellt wird, verwendet ImsAuthService
die zum Registrieren der imsClientId
verwendete redirectUrlmodalMode
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
service
, ein Objekt, das den Adobe IMS-Dienst darstellt. Siehe ImsAuthService
für weitere Informationen.onAccessTokenReceived
imsToken
vom Adobe IMS-Authentifizierungsdienst empfangen wird. Diese Funktion akzeptiert einen Parameter namens imsToken
, eine Zeichenfolge, die das Zugriffstoken darstellt.onAccessTokenExpired
onErrorReceived
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.
isSignedInUser
getImsToken
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
ImsAuthProps
, um die Authentifizierung in einem Popup-Fenster oder beim vollständigem Neuladen einer Seite anzuzeigensignOut
refreshToken
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);
},
}