メインコンテンツまでスキップ

MicroCMSとKurocoEdgeを使用したメタタグの管理

備考

想定作業時間:15分

概要

KurocoEdgeでルールを設定することで、ウェブページのメタタグを変更することができます。KurocoEdgeとコンテンツ管理システム(CMS)を統合することで、ウェブサイトのメタタグを簡単に管理することができます。CMSはメタタグの管理に使用され、KurocoEdgeは実際のウェブページへの変更を行うエンジンとなります。

このチュートリアルでは、外部のCMSサービスであるMicroCMSを使用して、KurocoEdgeと統合します。

学べること

前提条件

MicroCMSアカウントを持っていない場合は、こちらで無料アカウントを登録して下さい。

MicroCMSの設定

サービスを作成する

MicroCMSアカウントを登録したら、以下のように新しいサービスを設定します: Image from Gyazo

注記

サービスIDは一意である必要があるため、独自のサービスIDを指定して下さい。

次に、メタタグの内容を管理するためにコンテンツ(API)を作成します。
Image from Gyazo

以下のようにAPI名とエンドポイント名を入力します。
Image from Gyazo

メタタグの変更を管理するため、リスト形式のAPIタイプを選択します。 Image from Gyazo

次のようにAPIスキーマを定義します。
Image from Gyazo

フィールドID表示名タイプ
titleタイトルテキストフィールド
description説明テキストフィールド

MicroCMSのコンテンツを作成する

メタタグの内容はMicroCMSのコンテンツで管理します。
まず、MicroCMSで以下のコンテンツを作成します。
ここで設定したタイトルと説明が、既存サイトの"og:title"と"og:description"に反映されるようになります。

項目
タイトルTest title
説明Test description

Image from Gyazo

Preview APIボタンをクリックし、次の情報をメモしておきます:

  • API URL
  • X-MICROCMS-API-KEY

Image from Gyazo

KurocoEdgeの設定

MicroCMSサービスをバックエンドホストとしてKurocoEdgeに追加する

MicroCMSをKurocoEdgeと連携するために、MicroCMSサービスのドメインをKurocoEdgeのバックエンドホストリストに追加する必要があります。

サイドメニューから[KurocoEdge] -> [バックエンド一覧]をクリックし、バックエンド一覧ページに遷移します。 Image from Gyazo

[追加]ボタンをクリックしてバックエンドドメインを追加します。 Image from Gyazo

バックエンドアドレスに、metatag.microcms.ioを設定し、[追加]ボタンをクリックしてバックエンドドメインを追加します。
metatagの部分はMicroCMSのサービスIDになります。
Image from Gyazo

指定したドメインがバックエンド一覧に追加されたことを確認できます。 Image from Gyazo

KurocoEdgeでルールを定義する

サイドメニューから[KurocoEdge] -> [デプロイ一覧]をクリックしてデプロイ一覧ページに遷移し、下書きのデプロイを選択します。 Image from Gyazo

ヒント

既存のドラフトデプロイがない場合は、既存のアクティブなデプロイを選択し、[クローン]ボタンをクリックします。

Image from Gyazo

[追加]ボタンをクリックして、デプロイに新しいルールを作成します。 Image from Gyazo

レスポンスタブで、[アクション追加]をクリックします。 Image from Gyazo

条件/変数

条件/変数をクリックします。 Image from Gyazo

以下の手順で設定します。

  1. [項目追加]をクリックし、制限項目のドロップダウンよりAPI変数を選択します。

  2. 詳細条件に表示される[API追加]ボタンをクリックします。 Image from Gyazo

  3. 詳細設定が表示されるので、[編集]ボタンをクリックします。 Image from Gyazo

  4. それぞれの項目を以下の通り設定します。

    項目名
    APIエンドポイントMicroCMSのコンテンツを作成するで作成・メモしたAPI URL
    キャッシュ(秒)キャッシュなし
    メソッドGET
    プリロード有効にします。
    ヘッダ名前:X-MICROCMS-API-KEY / 値:MicroCMSのコンテンツを作成するで作成・メモしたAPIキー
    期待される変数名titledescriptionAPIレスポンスの中の変数名に入力

    Image from Gyazo

  5. 上記設定できたら[縮小]ボタンをクリックしてダイアログを閉じます。

設定

設定をクリックします。 Image from Gyazo

以下の手順で設定します。

  1. [項目追加]をクリックし、処理のドロップダウンよりHTMLの編集を選択します。

  2. 詳細設定に表示される編集ボタンをクリックしてエディターダイアログを開きます。
    Image from Gyazo

  3. 全般タブでルールを適用するサイトの要素を指定します。CSSセレクターmeta[property="og:title"]と入力します。
    Image from Gyazo

  4. タグの属性タブで、以下を設定します。

    操作属性名
    セットするcontent{$title}

    Image from Gyazo

  1. 上記設定できたら[縮小]ボタンをクリックしてダイアログを閉じます。

上記のルール設定により、サイトに以下のロジックが適用されます。

  1. og:titleメタプロパティを検索。
  2. og:titlecontentを、MicroCMS APIから返されたtitleの値に置き換える。

同様に、メタディスクリプションを変更するために別の項目を追加します。

  1. [項目追加]をクリックして別の項目を追加し、HTML編集を選択します。
    Image from Gyazo

  2. 詳細設定に表示される編集ボタンをクリックしてエディターダイアログを開きます。
    Image from Gyazo

  3. 全般タブでルールを適用するサイトの要素を指定します。CSS selectormeta[property="og:description"]と入力します。   Image from Gyazo

  4. タグの属性タブで、以下を設定します。

    操作属性名
    セットするcontent{$description}

    Image from Gyazo

  1. [縮小]ボタンをクリックし編集画面を閉じた後、ページの左下にある[更新する]ボタンをクリックして変更内容を保存します。
    Image from Gyazo
ヒント

API変数を利用して外部サービスから得たレスポンスは、チェックタブから確認できます。 期待される変数名がレスポンスのルートに存在するフィールド名と一致しているかご確認ください。

また、配下のフィールド名を利用する場合は、API変数の期待される変数名はルートのフィールド名で指定し、利用する際に特定のフィールドを指定します。

例えば以下のようなJSONがレスポンスされる場合、期待される変数名をdetails、利用する際の記述を{$details.0.content}とすると、Test contentの文字列が利用できます。

{
"title": "Test title",
"description": "Test description"
"details": [
{
"content": "Test content"
}
]
}

動作確認

デプロイが有効化された後、"og:title"と"og:description"のメタプロパティの「content」が、MicroCMSで指定した値を正しく取得して表示されるかを確認できます。 Image from Gyazo

KurocoEdgeルールの改善

KurocoEdgeのルールを更新する

上記で設定したKurocoEdgeルールはウェブサイト全体のメタタグを変更してしまいます。
そこで、MicroCMSで作成したコンテンツがメタタグの変更を適用するディレクトリを指定できるよう、ルールのロジックを改善します。 このために、以下のようにKurocoEdgeルールを変更します:
Image from Gyazo

  1. 適用するURLパターン: /(?P<dir>.*)/
  2. レスポンス → アクション → 条件/変数 → APIエンドポイント: https://metatag.microcms.io/api/v1/metatag/{$dir}
注意

URLのドメインの「metatag」部分を、MicroCMSのサービスIDに置き換えてください。

上記の設定では、/(?P<dir>.*)/の正規表現で、アクセスされたディレクトリ名をdirの変数に割り当てています。
また、APIエンドポイントの{$dir}の部分でディレクトリ名をslugにして、MicroCMSにリクエストを送っています。
MicroCMSのAPIではエンドポイントの末尾の部分が、MicroCMS内の「コンテンツID」になるため、コンテンツIDにディレクトリ名を設定することで、管理対象のディレクトリを指定します。

MicroCMSのコンテンツを更新する

次に、MicroCMSのコンテンツを更新し、KurocoEdgeルールを適用したいサイトのディレクトリ名を「コンテンツID」として設定します。この例では、「コンテンツID」を「products」として更新し、/products/ページのメタタグを変更する形にします。 Image from Gyazo

動作確認

MicroCMSで設定したコンテンツに基づいて、対象のディレクトリページのメタタグのコンテンツが正しく変更されたかを確認します。 Image from Gyazo

MicoroCMSのコンテンツIDに設定されたディレクトリ以外のページに対しては、メタタグのデータは変更されません。

まとめ

ウェブサイト内のディレクトリ名をエンドポイントURLの一部にして、MicroCMSにリクエストを送り、メタタグを変更するルールをKurocoEdgeに設定しました。
これで、メタタグの内容と、その対象ページをMicroCMSで管理できます。


サポート

お探しのページは見つかりましたか?解決しない場合は、問い合わせフォームからお問い合わせいただくか、Discordコミュニティにご参加ください。