Sitecore Connect for Content Hub 4.0 - CMP 設定編

公開日 :

前回、Sitecore Connect for Content Hub のインストールを実施しました。インストール、設定が完了すると、デジタルアセット管理との連携まではスムーズに進みます。今回は、コンテンツマーケティングプラットフォームとの連携について少し深掘りをします。

Microsoft Azure での準備

Sitecore Content Hub CMP と Sitecore CMS を連携させるにあたって、Microsoft Azure の Azure Service Bus を利用して連携をします。まずは、Service Bus を作成します。

random desc

作成をする際には、価格レベルに関しては Standard をしてください。

random desc

左側のメニューのうち、トピックを選択して、名前を hub_out を選択して作成してください。

random desc

作成したトピックの中に、Sitecore というサブスクリプションを作成してください。今回は Sitecore とします。

random desc

同じ設定で hub_out と同じ様に hub_in を作成して、トピックを2つとします。

random desc

hub_out のサブスクリプションを選択し、メッセージの転送先を hub_in に設定をします。

random desc

Sitecore Content Hub CMP の設定

アカウントの作成

まず、コネクタで利用するシステム連携のアカウントを作成します。

random desc

ユーザーにはグループメンバーシップとして、Supeusers を適用します。

random desc

アカウントの作成をしたあと、プロファイルの編集を選択、メールアドレスを設定します。

random desc

メールアドレスを設定したあと、パスワードのリセット をクリックすると、パスワードリセットのメールを受け取ることができます。

random desc

パスワードをリセットしたあと、ログインができるか確認をします。ログインができれば、Sitecore Content Hub のアカウントができました。

アクションの作成

続いて事前に作成をしておいた Azure Service Bus との接続を作成していきます。管理画面のアクションで新規アクションを作成します。入力項目は以下の通りです。

設定項目

設定値

名前

Demo - CMP 2 Sitecore Action

ラベル

形式

Azure Service Bus

接続文字列

(後述)

送信タイプ

トピック

送信先

hub_out

接続文字列に関しては、Azure Service Bus の共有アクセスポリシーが作成されており、_RootManageSharedAccessKey_ を選択、プライマリ接続文字列を選択してください。

random desc

プライマリ接続文字列を設定してください。実際に全てを入力したのが以下の画面です。テスト接続 のボタンをクリックして、テストがパスすることを確認してください。

random desc

トリガーの作成

今度はトリガーの作成をおこないます。管理画面からトリガーを開き、新規トリガーの作成を進めます。まず最初の画面では以下のように設定をしてください。

設定項目

設定値

名前

Demo - CMP 2 Sitecore Trigger

目的

エンティティの変更

実行タイプ

バックグラウンドで

random desc

続いて条件のタブに切り替えます。ここでは、M.Content に対する変更をトリガーとし、Published のステータスに変わった際にトリガーが動く様にします。ということで、以下の様な設定となります。

random desc

最後にアクションのタブに切り替えて、先ほど作成をしたアクションを選択します。

random desc

全て設定が完了したら、保存して閉じるをクリックします。するとトリガーを有効にするかどうかの確認が表示されます。

random desc

有効にすることで、Sitecore Content Hub CMP 側の設定が完了となります。

Sitecore の設定

ConnectionStrings.config の設定

前回の Sitecore Content Hub DAM の設定の際に、ConnectionStrings.config の設定として以下の項目が決まっていませんでした。

<add name="CMP.ContentHub" connectionString="ClientId={client_id};ClientSecret={client_secret};UserName={username};Password={password};URI={uri};" />
<add name="CMP.ServiceBusEntityPathIn" connectionString="{Azure Service Bus connection string with incoming topic}" />
<add name="CMP.ServiceBusSubscription" connectionString="{Subscription name}" />
<add name="CMP.ServiceBusEntityPathOut" connectionString="{Azure Service Bus connection string with outcoming topic}" />

以下の項目を設定していきます。

設定項目

設定値

Client Id

LogicApp

Client Secret

(後述)

ユーザー名

作成した管理者名

Password

作成した管理者のパスワード

Content Hub URI

Content Hub のサーバー URL

Connection String

Service Bus の Endpont

incoming topic name

hub_in の接続文字列

outcoming topic name

hub_out の接続文字列

Incoming subscription name

sitecore

Client Seacret に関しては、Sitecore Content Hub の管理画面、Oauth クライアントを開きます。すると、LogicApp の設定を参照できます。

random desc

上記の値を設定一通り設定した画面は参考までに以下の様になります。

<add name="CMP.ContentHub" connectionString="ClientId=LogicApp;ClientSecret=xxxxxxx-xxxx-xxxx-xxx-xxxxxxxxxxxx;UserName=CMPDemo;Password=Password;URI=https://yourdemo.stylelabs.io;" />
<add name="CMP.ServiceBusEntityPathIn" connectionString="Endpoint=sb://demodemo.servicebus.windows.net/;SharedAccessKeyName=hub_in;SharedAccessKey=hereiskenumberforhubin;EntityPath=hub_in" />
<add name="CMP.ServiceBusSubscription" connectionString="Sitecore" />
<add name="CMP.ServiceBusEntityPathOut" connectionString="Endpoint=sb://demodemo.servicebus.windows.net/;SharedAccessKeyName=hub_out;SharedAccessKey=itishuboutsharedaccesskey=;EntityPath=hub_out" />

テンプレートの作成

CMP から提供されるアイテムを保存するために、/sitecore/content/CMP の直下にバケットを作成します。今回は Blog とします。

random desc

続いてこのアイテムのテンプレートを作成します。テンプレートの /sitecore/templates/User Defined の直下で Blog テンプレートを作ります。今回は、タイトル(1行テキスト)と本文(リッチテキスト)のフィールドを作成しました。

random desc

続いて作成中のテンプレートのタブでコンテンツを選択します。CMP のテンプレート一覧にある Content Hub Entity を選択してください。

random desc

表示タブを選択して、スタンダードフィールドおよびバケットをチェックしてください。

random desc

メニューのビルダーオプションを選択して、スタンダードバリューをクリックします。

random desc

アイテムバケットの設定項目で、バケット化を許可をチェックします。

random desc

保存をしてテンプレートが完成しました。

エンティティマッピング

続いて Sitecore Content Hub CMP で定義しているフィールドと Sitecore のテンプレートのフィールドのマッピングをします。/sitecore/system/Modules/CMP/Config のアイテムを右クリックして、Entity Mapping のアイテムの作成を開始します。

random desc

今回は Blog としてアイテムを作成します。設定をする項目は以下の通りです。

EntityTypeSchema は、Content Hub のタクソノミーにあるコンテンツタイプの識別子を利用してください。

random desc

バケットは事前に作ったバケットのアイテムを、テンプレートも事前に作成をしたテンプレートを指定します。最後の項目はアイテム名に関する定義となります。これは Content Hub で作成をするアイテム名が適用されるように、ItemNameProperty には Content.Name を設定します。今回は、仕上がりはこんな形です。

random desc

フィールドの追加

続いて、フィールドを指定していきます。まず Content Hub のデータスキーマを確認するために、ブログのコンテンツを作成します。作成をしているブログの URL を確認すると、例えば以下の様になります。

  • https://yourinsctance.io/ja-jp/content/detail/37649

上記の URL に対して、 /ja-jp/content/detail/ の部分を /api/entities/ に書き換えると、作成中のエンティティのデータを参照できる様になります。

  • https://yourinsctance.io/api/entities/37649

random desc

Json のデータを参照すると、properties - Content.Name がすでに作成されていることがわかります。ブログに関しては、以下の項目が対象となります。

"Blog_Title": null,
"Blog_Quote": null,
"Blog_Body": null,

今回はこのうち、Blog_Title と Blog_Body の2つを連携させたいと考えています。

もう一度 Sitecore の環境に戻ります。今回は2つのフィールドを追加して、Content Hub のスキーマの名前と Sitecore のフィールドの名前を合わせる形の設定を追加します。以下が今回設定をしている内容となります。

random descrandom desc

これで設定が完了となります。

動作検証

Sitecore Content Hub のコンテンツメニューを開き、 +コンテンツ をクリックして新しいコンテンツの作成を始めます。

random desc

作成を開始すると、ブログなのでタイトル、記事のエリアが表示されます。今回は以下の様に入力してみました。

random desc

コンテンツの設定はもう少し本来はやったほうがいいのですが、テストなのでこの項目だけで進めていきます。ワークフローを進めていきます。

  1. 開始

  2. レビューに送る

  3. 承認

承認をクリックすると、以下のようなダイアログが表示されます。

random desc

確認をクリックすると、コンテンツの状態は公開準備完了に切り替わります。この変更がトリガーとなり、アクションが動いているはずですので、管理 - アクションを開き、監査を開いてください。ここでは一番上に表示されているのが、実行されたアクションのログとなります。

random desc

CMS の画面に切り替えると、CMP のアイテムの下のアイテムバケットに1つのサブアイテムが生成されていることがわかります。

random desc

Blog のアイテムを選択して、Test で検索をするとバケットの中にアイテムが生成されていることがわかります。

random desc

アイテムを選択すると、CMP で作成した名前がアイテム名に、ブログのタイトルおよび記事のタイトルに Blog_Title のデータが、また Body には Blog の本文が入っていることがわかります。

random desc

また識別子もアイテムに含まれており、この識別子は CMP で作成したアイテムの識別子と同じ値が入っていることがわかります。

まとめ

このように、Sitecore Content Hub CMP で作成したコンテンツを Sitecore CMS のアイテムとして作成することができました。定型的なコンテンツであれば、CMP でページを作成する形の運用が可能となります。また、CMP で作成することができるコンテンツタイプも増やすことができます。