Drupal Feedsを使用してJSON形式のコンテンツをインポートする方法
2025-05-09
以下は、Drupal(Drupal 10または他の最新バージョンに適用)でFeedsモジュールを使用してJSON形式のコンテンツをインポートする手順を、Markdown形式で簡潔にまとめたガイドです。このガイドでは、Drupalの基本操作(モジュールのインストールやコンテンツタイプの管理)に一定の理解があることを前提としています。
ステップ1:必要なモジュールのインストール
JSON形式のコンテンツをインポートするには、以下のモジュールが必要です:
- Feeds: データインポートの中核機能を提供。
- Feeds Tamper(オプション):インポート前にデータを処理(例:形式変換)する場合に使用。
- Feeds JSONPath Parser または Feeds Extensible Parsers:JSON形式のデータを解析。
インストール方法
-
Composerを使用してモジュールをインストール:
bash composer require 'drupal/feeds:^3.0' composer require 'drupal/feeds_tamper:^2.0' composer require 'drupal/feeds_ex:^1.0'
-
モジュールを有効化:
- Drupalの管理画面で「管理 > 拡張機能」に移動。
Feeds
、Feeds Tamper
(使用する場合)、Feeds Extensible Parsers
を有効化。
ステップ2:JSONデータとコンテンツタイプの準備
- JSONデータの準備:
- JSONファイルが正しい形式であることを確認。例:
json [ { "title": "記事タイトル1", "body": "記事内容1", "date": "2025-05-09" }, { "title": "記事タイトル2", "body": "記事内容2", "date": "2025-05-10" } ]
-
JSONファイルをサーバー上のアクセス可能な場所(例:
sites/default/files/import/data.json
)に保存、または公開URL(例:APIエンドポイント)を用意。 -
ターゲットコンテンツタイプの作成:
- 「構造 > コンテンツタイプ > コンテンツタイプの追加」に移動し、コンテンツタイプ(例:「記事」)を作成。
- 対応するフィールド(例:
タイトル
、本文
、日付
)を追加し、JSONデータのキー名と一致またはマッピング可能に設定。
ステップ3:Feedsインポーターの設定
- Feedsインポーターの作成:
- 「構造 > Feedsタイプ > Feedsタイプの追加」に移動。
-
設定:
- 名前:例「JSON記事インポート」。
- ターゲットコンテンツタイプ:作成したコンテンツタイプ(例:「記事」)を選択。
-
パーサーの選択:
- 「パーサー」設定で、
JSONPath Parser
(Feeds Extensible Parsersから)を選択。 -
JSONPath式を設定。例:
- コンテキスト:
$.*
(JSON配列の各オブジェクトを選択)。 - フィールドマッピング:
title
:$.title
body
:$.body
date
:$.date
- コンテキスト:
-
フィールドのマッピング:
-
「マッピング」設定で、JSONデータのキーをコンテンツタイプのフィールドにマッピング。例:
title
(JSON) →タイトル
(コンテンツタイプ)。body
(JSON) →本文
(コンテンツタイプ)。date
(JSON) →日付
(コンテンツタイプ)。
-
データソースの設定:
- 「フェッチャー」設定でデータソースを選択:
- ファイルアップロード:ローカルのJSONファイルパスを指定。
- HTTPフェッチャー:JSONデータのURL(例:APIエンドポイント)を入力。
-
「定期インポート」を有効化してURLから自動更新可能。
-
Tamperルールの追加(オプション):
- データ変換(例:日付形式の調整)が必要な場合、「Tamper」タブに移動。
- ルールを追加し、例:
Y-m-d
形式をDrupalの日付形式に変換。
ステップ4:インポートの実行
- インポートの実行:
- 「コンテンツ > Feeds > インポート」に移動。
- 作成したFeedsタイプを選択し、以下を行う:
- JSONファイルをアップロード(ファイルアップロードの場合)。
- または「インポート」をクリック(URL使用の場合)。
-
「インポート」ボタンをクリックして処理を開始。
-
結果の確認:
- インポート完了後、作成されたノードを確認(「コンテンツ > すべてのコンテンツ」)。
- エラーがある場合、Feedsログ(「管理 > レポート > Feedsログ」)を確認。
ステップ5:最適化とトラブルシューティング
- 最適化:
- 一意な識別子(例:JSONのID)を使用して「一意な値」マッピングを設定し、重複インポートを防止。
-
「既存ノードの更新」オプションを有効化し、以降のインポートでコンテンツを更新。
-
よくある問題:
- JSON解析エラー:
- JSON形式が正しいか確認(JSONLintなどのオンラインツールを使用)。
- JSONPath式が正しいか確認。
- フィールドが正しくマッピングされない:
- マッピング設定を確認し、JSONキーとコンテンツタイプのフィールドが対応しているか確認。
- インポートが遅い:
- バッチ処理を有効化(Feedsタイプ設定でバッチサイズを調整)。
参考資料
- Drupal.org - Feedsモジュールドキュメント
- Drupal.org - Feeds Extensible Parsers
- WebWash - Feedsを使用したデータインポート
- OSTraining - Feedsモジュールガイド
以上の手順で、Feedsモジュールを使用してJSON形式のコンテンツをDrupalに簡単にインポートできます。さらに複雑な設定が必要な場合は、Feeds Tamperやカスタムパーサーを活用してください。