前回は、Next.js のテンプレートからサンプルデータを削除して、日本語のコンテンツを表示するところまで紹介をしました。今回は、このサンプルのサイトを Sitecore Experience Platform と連携させる手順を紹介します。
![](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F1hebVxNeMInU5O9OBSZ2ib%2F80dc6fb3b5811a38d3bd147329d54946%2Fjsssite11.png&w=3840&q=75)
前提条件
今回は Sitecore と Next.js のアプリを接続するために、以下の環境を準備しました。
- Sitecore Experience Platform 10.1
- Sitecore PowerShell Extensions 6.2
- Sitecore Experience Accelerator 10.1
- Sitecore Headless Services Server for Sitecore 10.1.0 XP 16.0.0
また、作業をしやすくするためにドメイン名などは以下の様に設定、ワイルドカード証明書を利用しています。今回の作業をするサーバーは、パブリック クラウドに仮想マシンで立ち上げています(以下の名称は仮称ですので、実際に手元のマシンでは自前のドメイン名などを使うといいと思います)。
- jssdemo.cmsdemo.jp ( Sitecore Experience Platform)
- iddemo.cmsdemo.jp ( Sitecore Identity Server )
API Key の準備
JSS のアプリと Sitecore を連携させるための API キーをまず最初に作成します。
- コンテンツエディターを開きます
- sitecore - system - Settings - Services - API Keys のアイテムを選択します
![jsssite01.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F37w2OT8ysgXMM6O71t1Gg9%2Faacb9142ecd3b4396b3aaf6cb901de1c%2Fjsssite01.png&w=3840&q=75)
- 上記の画面の場合は API キーのボタンを、画面が異なる場合はツリーにある API Keys を右クリックして新規 API キーを作成します
- API キーの名前を入力します
![jsssite02.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F1Fuv1Ps1BkE0sc5V8aBccJ%2F32cc3dc03096bbfa0be2a2e74bf63c87%2Fjsssite02.png&w=3840&q=75)
- CORS Origins と認められたコントローラーのどちらの項目にも * を設定してください。
![jsssite03.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F2034dyi19A4v0Jn2G8YZ1l%2F88d96b7c528a59e21d9bcbf83371aca9%2Fjsssite03.png&w=3840&q=75)
作成をした API Key の Item ID がキーになります。作成したアイテムは公開しておく必要がありますので、以下の手順で公開をしてください。
- コンテンツエディター で対象となるアイテムを選択します
- パブリッシュ タブを開きます
- パブリッシュ のアイコンの ▼ をクリック、 アイテムをパブリッシュ をクリック
![jsssite04.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F5Aeavd0l152LkfNxIy2OlJ%2Fe8b8255146021f2140d1227c1bb89e64%2Fjsssite04.png&w=3840&q=75)
ダイアログで必要な項目をチェックして、パブリッシュを実行します。
![jsssite05.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F6Jj3RXJRYNYlOfE2YoDBf1%2Fabb22d5d4103d8a54eb807e74927a0f4%2Fjsssite05.png&w=3840&q=75)
アイテムの公開が完了した際に、API Key が有効になっているかを確認するために、 https://yourhostname/sitecore/api/layout/render/jss?item=/&sc_apikey={YOUR_API_KEY_ID} とAPI キーを追加した URL でアクセスをして、JSON のデータが表示されるか確認をしてください。
![jsssite06.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F1VbpBMFQPBqLCpLE8BxI1t%2F5ce6aa98ca901c2a41fadfe428e2cbb8%2Fjsssite06.png&w=3840&q=75)
Next.js アプリの設定
続いて作成した API キーを利用してセットアップを開始します。Next.js のアプリのフォルダーに移動して、JSS のコマンドを実行します。
jss setup
聞かれる項目は以下の通りです。
- Sitecore のインスタンスはこのマシン、もしくはネットワークで共有されているかを聞かれます。
- 今回は別のマシンで動かしているため、n を選択します。
- 続いてホスト名に関する情報が表示されます。
- 今回は、 https://jss.dev.local を入力します
- インポートのサービスの URL が表示されます
- デフォルトのままで問題ありません
- API Key の確認となります
- 事前に作成した API キーを入力します
- 展開用の秘密鍵の確認が表示されます
- ランダムの文字列を自動生成するので空欄のまま
上記の作業が完了すると、必要なファイルが生成されます。
![jsssite07.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F5BAwwdqXXU2dWt9DIjEI94%2F5b613204b8749604538205c9d58bcb82%2Fjsssite07.png&w=3840&q=75)
上記のメッセージを参照すると、展開のための秘密鍵は sitecore/config/nextjs-app.deploysecret.config の中のファイルに記載されていることがわかります。
Sitecore に設定を反映させる
ネットワークで直接 Sitecore のインスタンスにアクセスできる場合は、以下のコマンドを実行すると設定ファイルがコピーされます。
jss deploy config
今回は、仮想マシンとの接続で繋がっていないため、 jss setup を実行したあとに作成される、/sitecore/config の 2 つの config ファイルをコピーします。
![jsssite08.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F2YtKhm2NT8HniuNtpENtJO%2F624d94f1f24db9efdded0a6caae1034c%2Fjsssite08.png&w=1200&q=75)
App_Config¥Include¥zzz のフォルダを作成し、2 つのファイルを Sitecore の設定フォルダにコピーすると jss deploy config と同じ作業をしたことになります。
![jsssite09.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2FZg0l2AnEwBDsL8m6DH5l9%2Ff02a27e37a60c1265cc457a7b613a122%2Fjsssite09.png&w=3840&q=75)
インポート
上記の設定が完了していれば、後はコマンドを実行するだけとなります。
jss deploy items -c -d
![jsssite10.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F3rGTtbVyVW4OCXmL4eRU76%2F84125d370d38ad24bc6a379df55b0113%2Fjsssite10.png&w=3840&q=75)
インポートが完了すると、以下のように Sitecore のコンテンツツリーにアイテムが表示されます。
![jsssite11.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F1hebVxNeMInU5O9OBSZ2ib%2F80dc6fb3b5811a38d3bd147329d54946%2Fjsssite11.png&w=3840&q=75)
まとめ
今回は Next.js のアプリで持っているデータを、Sitecore の中にインポートをする手順を紹介しました。Next.js と Sitecore の連携に関してはまだいくつか Tips がありますので、あと数回に分けて紹介をしていきます。
- Next.js SDK を利用してサンプルサイトを構築 - Part.1
- Next.js SDK を利用してサンプルサイトを構築 - Part.2
- Next.js SDK を利用してサンプルサイトを構築 - Part.3
- Next.js SDK を利用してサンプルサイトを構築 - Part.4