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やカスタムパーサーを活用してください。