[AEM Assets]{class="badge positive" title="AEM Assetsに適用)。"}
Content Advisorのインストールとプロパティ content-advisor-installation-properties
Content Advisorは、Adobe以外(サードパーティ)のアプリケーションとの統合も可能で、Adobeのアプリケーションに留まらず、インテリジェントなアセット検索を実現します。 AIを活用した検索、コンテキストに応じたレコメンデーション、キャンペーン概要ベースの検索、Dynamic Media レンディションへのアクセス、コンテンツフラグメントの検索、フィルター、アセットメタデータなど、同じ豊富な機能セットをサードパーティ統合でサポートしています。
前提条件 prereqs
次の通信方法を確保する必要があります。
- ホストアプリケーションは HTTPS で実行されている。
- アプリケーションは
localhostで実行できない。 コンテンツアドバイザーをローカルマシンに統合する場合は、[https://<your_campany>.localhost.com:<port_number>]などのカスタムドメインを作成し、このカスタムドメインをredirectUrl listに追加する必要があります。 - それぞれの
imsClientIdを使用して、clientID を AEM Cloud Service 環境変数に設定および追加できる。 - IMS 範囲のリストは、環境設定で定義する必要がある。
- アプリケーションの URL は、IMS クライアントのリダイレクト URL の許可リストにある。
- IMS ログインフローは、web ブラウザーのポップアップを使用して設定およびレンダリングされる。 そのため、ターゲットブラウザーでポップアップを有効または許可する必要があります。
Content AdvisorのIMS認証ワークフローが必要な場合は、上記の前提条件を使用します。 または、IMS ワークフローで既に認証されている場合は、代わりに IMS 情報を追加できます。
- 統合アプリケーションがホストされるドメイン名。
- プロビジョニング後、組織には、Content Advisorの設定に不可欠な環境に対応する
imsClientId、imsScopeおよびredirectUrlが提供されます。 これらの有効なプロパティがないと、インストール手順を実行できません。
インストール content-advisor-installation
Content Advisorは、ESM CDN (例:esm.sh/skypack)とUMD バージョンの両方で利用できます。
UMD バージョンを使用しているブラウザー(推奨):
<script src="https://experience.adobe.com/solutions/CQ-assets-selectors/static-assets/resources/assets-selectors.js"></script>
<script>
const { renderAssetSelector } = PureJSSelectors;
</script>
ESM CDN バージョンを使用している import maps 対応ブラウザー:
<script type="module">
import { AssetSelector } from 'https://experience.adobe.com/solutions/CQ-assets-selectors/static-assets/resources/@assets/selectors/index.js'
</script>
ESM CDN バージョンを使用している Deno/Webpack Module Federation:
import { AssetSelector } from 'https://experience.adobe.com/solutions/CQ-assets-selectors/static-assets/resources/@assets/selectors/index.js'
Content Advisor プロパティ content-advisor-propertiess
コンテンツアドバイザーのプロパティを使用して、コンテンツアドバイザーのレンダリング方法をカスタマイズできます。 次の表に、Content Advisorのカスタマイズと使用に使用できるプロパティを示します。
trueとマークされている場合、Content Advisorは左側のパネル表示でレンダリングされます。 falseとマークされている場合、コンテンツアドバイザーはモーダルビューでレンダリングされます。imsOrg キーは、アクセスしようとしている組織が Adobe IMS 内にあるかどうかを認証するために必要です。imsToken は必須です。apiKey は必須です。<Object>[{id: 'urn:234}, {id: 'urn:555'}])アセットは、現在のディレクトリで使用できる必要があります。 別のディレクトリを使用する必要がある場合は、path プロパティの値も指定します。rail プロパティと共にに使用されます。Object<{ id?: string, defaultMessage?: string, description?: string}>i18nSymbols プロップ経由で渡すことができるインターフェイスを表示できます。 このインターフェイスを介して値を渡すと、提供されたデフォルトの翻訳が上書きされ、代わりに独自の翻訳が使用されます。 上書きを実行するには、上書きしたい i18nSymbols のキーに有効なメッセージ記述子オブジェクトを渡す必要があります。intl.locale プロップを介して有効なロケール文字列を指定することで、翻訳言語を選択できます。 例:intl={{ locale: "es-es" }}サポートされているロケール文字列は、言語標準の名前を表すISO 639 - コード に従っています。
サポートされているロケールのリスト:英語 – 'en-us' (デフォルト) スペイン語 – 'es-es' ドイツ語 – 'de'フランス語 – 'fr-fr' イタリア語 – 'it-it'日本語 – 'ja-jp'韓国語 – 'ko-kr' ポルトガル語 – 'pt-br'中国語(繁体字) - 'zh-cn'中国語(台湾) - 'zh-tw'
Array<string>{allowList?: Object}defaultからexpressの間でContent Advisor アプリケーションにテーマを適用します。 また、@react-spectrum/theme-express もサポートしています。アセットが選択され、モーダルの Select ボタンがクリックされた場合に、アセットの項目の配列と一緒に呼び出されます。 この関数は、モーダルビューでのみ呼び出されます。 パネルビューの場合は、handleAssetSelection 関数または onDrop 関数を使用します。 例:
handleSelection=(assets: Asset[])=> {…}
詳しくは、アセットの選択を参照してください。
アセットが選択または選択解除されたときに、項目の配列と一緒に呼び出されます。 これは、ユーザーがアセットの選択時にアセットをリッスンする場合に役立ちます。 例:
handleAssetSelection=(assets: Asset[])=> {…}
詳しくは、アセットの選択を参照してください。
Close ボタンが押された際に呼び出されます。 これは、modal ビューでのみ呼び出され、rail ビューでは無視されます。single 選択または multiple 選択するための設定です。構文:
aemTierType: "author" "delivery"例えば、両方の
["author","delivery"]が使用されている場合、リポジトリスイッチャーにはオーサーと配信の両方のオプションが表示されます。EXPIRED、EXPIRING_SOON または NOT_EXPIRED を返します。 有効期限切れのアセットのカスタマイズを参照してください。 さらに、allowSelectionAndDrag を使用できます。この場合、関数の値は true または false のいずれかになります。 値が false に設定されている場合、有効期限切れのアセットはキャンバス上で選択またはドラッグできません。uploadConfigプロパティの下にネストされています。 ユーザーからメタデータを収集するのに指定するフィールドの配列を追加します。 このプロパティを使用すると、アセットに自動的に割り当てられるが、ユーザーには表示されない非表示のメタデータも使用できます。uploadConfigプロパティの下にネストされています。 これは、property と value から構成されます。 Property は、値を更新する metadataSchema から渡されたフィールドの mapToProperty と等しくなります。 一方、value は、入力として指定する新しい値と等しくなります。"/content/dam"uploadConfigプロパティの下にネストされています。 ファイルのターゲットアップロードパスで、デフォルトは、アセットリポジトリのルートです。uploadConfigプロパティに関連付けられています。(uploadInfo: UploadInfo) => void です。 このプロパティは、uploadConfig プロパティの下にネストされています。sourceTypes は、有効にする読み込みソースの配列を使用します。 サポートされているソースは、Onedrive と Dropbox です。 構文は { sourceTypes?: ImportSourceType[]; apiKey?: string; } です。 さらに、このプロパティは、uploadConfig プロパティの下にネストされています。(uploadStats: UploadStats) => void です。 さらに、このプロパティは、uploadConfig プロパティの下にネストされています。uploadConfigプロパティの下にネストされています。 これは、ファイルを変更した際のアップロードの動作を示すのに使用されるコールバック関数です。 アップロード保留中のファイルの新しい配列とアップロードのソースタイプを渡します。 エラーの場合、ソースタイプは null になることがあります。 構文は (newFiles: File[], uploadType: UploadType) => void です。{ href: string; alt: string; } です。さらに、このプロパティは、uploadConfig プロパティの下にネストされています。featureSet:[ ] プロパティは、Content Advisor アプリケーションで特定の機能を有効または無効にするために使用されます。 コンポーネントまたは機能を有効にするには、配列内に文字列値を渡すか、配列を空のままにして追加された機能を無効にし、ベース機能だけを使用します。 例えば、コンテンツアドバイザーでアップロード機能を有効にする場合は、構文featureSet:["upload"]を使用します。 同様に、featureSet:["content-fragments"]を使用して、コンテンツアドバイザーでコンテンツフラグメントを有効にできます。 複数の機能を一緒に使用するには、構文はfeatureSet:["upload"、"content-fragments"]です。ImsAuthProps ims-auth-props
ImsAuthProps プロパティは、Content AdvisorがimsTokenを取得するために使用する認証情報とフローを定義します。 これらのプロパティを設定すると、認証フローの動作を制御し、様々な認証イベントのリスナーを登録できます。
imsClientIdimsScoperedirectUrlredirectUrl を指定していない場合、ImsAuthService は imsClientId の登録に使用した redirectUrl を使用します。modalModetrue に設定すると、認証フローがポップアップで表示されます。 false に設定すると、認証フローはページ全体をリロードして表示されます。 メモ::_UX を向上させるには、ユーザーがブラウザーのポップアップを無効にしていると、この値を動的に制御できます。onImsServiceInitializedservice という 1 つのパラメーターを受け取ります。 詳しくは、ImsAuthService を参照してください。onAccessTokenReceivedimsToken を受信する際に呼び出されるコールバック関数。 この関数は、アクセストークンを表す文字列である imsToken という 1 つのパラメーターを受け取ります。onAccessTokenExpiredonErrorReceivedImsAuthService ims-auth-service
ImsAuthService クラスは、Content Advisorの認証フローを処理します。 これは、Adobe IMS 認証サービスから imsToken を取得する役割を果たします。 imsToken は、ユーザーを認証し、Adobe Experience Manager as a Cloud Service アセットリポジトリへのアクセスを認証するために使用されます。 ImsAuthService は、ImsAuthProps プロパティを使用して認証フローを制御し、様々な認証イベントのリスナーを登録します。 便利なregisterAssetsSelectorsAuthService関数を使用して、ImsAuthService インスタンスをContent Advisorに登録できます。 ImsAuthService クラスでは、次の関数を使用できます。 ただし、registerAssetsSelectorsAuthService 関数を使用している場合は、これらの関数を直接呼び出す必要はありません。
isSignedInUsergetImsTokenimsToken を取得します。これは、asset _rendition の生成など、他のサービスへのリクエストを認証するために使用できます。signInImsAuthProps を使用して、ポップアップまたはページ全体のリロードで認証を表示します。signOutrefreshTokencontentFragmentSelectorProps content-fragment-selector-properties
contentFragmentSelectorPropsを使用すると、コンテンツアドバイザー内でコンテンツフラグメントにアクセスして表示する方法を設定できます。 featureSetでコンテンツフラグメント機能を有効にし、必要な設定を指定すると、コンテンツフラグメントの選択をアセットとシームレスに統合できます。 これにより、ユーザーは同じ統合インターフェイス内でコンテンツフラグメントを参照、検索、選択できるようになり、アセットや構造化されたコンテンツをまたいで、一貫性のあるコンテンツ選択エクスペリエンスを実現できます。
const assetSelectorProps = {
featureSet: [
'upload', /* Include upload or other featureSet values to ensure no missing functionality */
'content-fragments', /* Content Fragments pill will be shown */
],
contentFragmentSelectorProps: {
/* Configures the Content Fragments Pill experience */
/* ...props @aem-sites/content-fragment-selector MFE supports */
}
}
<AssetSelector {...assetSelectorProps} />
contentFragmentSelectorPropsでは、 コンテンツフラグメントセレクターのプロパティ で利用可能なプロパティのいずれかをメンションできます。
Content AdvisorをAngular、React、およびJavaScript アプリケーションと統合する方法については、Content Advisorの統合例を参照してください。