Drupal Feedsを使用してJSON形式のコンテンツをインポートする方法

2025-05-09

廣告

以下は、Drupal(Drupal 10または他の最新バージョンに適用)でFeedsモジュールを使用してJSON形式のコンテンツをインポートする手順を、Markdown形式で簡潔にまとめたガイドです。このガイドでは、Drupalの基本操作(モジュールのインストールやコンテンツタイプの管理)に一定の理解があることを前提としています。


ステップ1:必要なモジュールのインストール

JSON形式のコンテンツをインポートするには、以下のモジュールが必要です:

  1. Feeds: データインポートの中核機能を提供。
  2. Feeds Tamper(オプション):インポート前にデータを処理(例:形式変換)する場合に使用。
  3. Feeds JSONPath Parser または Feeds Extensible Parsers:JSON形式のデータを解析。

インストール方法

  1. Composerを使用してモジュールをインストール: bash composer require 'drupal/feeds:^3.0' composer require 'drupal/feeds_tamper:^2.0' composer require 'drupal/feeds_ex:^1.0'

  2. モジュールを有効化:

  3. Drupalの管理画面で「管理 > 拡張機能」に移動。
  4. FeedsFeeds Tamper(使用する場合)、Feeds Extensible Parsersを有効化。

ステップ2:JSONデータとコンテンツタイプの準備

  1. JSONデータの準備
  2. JSONファイルが正しい形式であることを確認。例: json [ { "title": "記事タイトル1", "body": "記事内容1", "date": "2025-05-09" }, { "title": "記事タイトル2", "body": "記事内容2", "date": "2025-05-10" } ]
  3. JSONファイルをサーバー上のアクセス可能な場所(例:sites/default/files/import/data.json)に保存、または公開URL(例:APIエンドポイント)を用意。

  4. ターゲットコンテンツタイプの作成

  5. 「構造 > コンテンツタイプ > コンテンツタイプの追加」に移動し、コンテンツタイプ(例:「記事」)を作成。
  6. 対応するフィールド(例:タイトル本文日付)を追加し、JSONデータのキー名と一致またはマッピング可能に設定。

ステップ3:Feedsインポーターの設定

  1. Feedsインポーターの作成
  2. 「構造 > Feedsタイプ > Feedsタイプの追加」に移動。
  3. 設定:

    • 名前:例「JSON記事インポート」。
    • ターゲットコンテンツタイプ:作成したコンテンツタイプ(例:「記事」)を選択。
  4. パーサーの選択

  5. 「パーサー」設定で、JSONPath Parser(Feeds Extensible Parsersから)を選択。
  6. JSONPath式を設定。例:

    • コンテキスト:$.*(JSON配列の各オブジェクトを選択)。
    • フィールドマッピング:
    • title: $.title
    • body: $.body
    • date: $.date
  7. フィールドのマッピング

  8. 「マッピング」設定で、JSONデータのキーをコンテンツタイプのフィールドにマッピング。例:

    • title(JSON) → タイトル(コンテンツタイプ)。
    • body(JSON) → 本文(コンテンツタイプ)。
    • date(JSON) → 日付(コンテンツタイプ)。
  9. データソースの設定

  10. 「フェッチャー」設定でデータソースを選択:
    • ファイルアップロード:ローカルのJSONファイルパスを指定。
    • HTTPフェッチャー:JSONデータのURL(例:APIエンドポイント)を入力。
  11. 「定期インポート」を有効化してURLから自動更新可能。

  12. Tamperルールの追加(オプション)

  13. データ変換(例:日付形式の調整)が必要な場合、「Tamper」タブに移動。
  14. ルールを追加し、例:Y-m-d形式をDrupalの日付形式に変換。

ステップ4:インポートの実行

  1. インポートの実行
  2. 「コンテンツ > Feeds > インポート」に移動。
  3. 作成したFeedsタイプを選択し、以下を行う:
    • JSONファイルをアップロード(ファイルアップロードの場合)。
    • または「インポート」をクリック(URL使用の場合)。
  4. 「インポート」ボタンをクリックして処理を開始。

  5. 結果の確認

  6. インポート完了後、作成されたノードを確認(「コンテンツ > すべてのコンテンツ」)。
  7. エラーがある場合、Feedsログ(「管理 > レポート > Feedsログ」)を確認。

ステップ5:最適化とトラブルシューティング

  1. 最適化
  2. 一意な識別子(例:JSONのID)を使用して「一意な値」マッピングを設定し、重複インポートを防止。
  3. 「既存ノードの更新」オプションを有効化し、以降のインポートでコンテンツを更新。

  4. よくある問題

  5. JSON解析エラー
    • JSON形式が正しいか確認(JSONLintなどのオンラインツールを使用)。
    • JSONPath式が正しいか確認。
  6. フィールドが正しくマッピングされない
    • マッピング設定を確認し、JSONキーとコンテンツタイプのフィールドが対応しているか確認。
  7. インポートが遅い
    • バッチ処理を有効化(Feedsタイプ設定でバッチサイズを調整)。

参考資料


以上の手順で、Feedsモジュールを使用してJSON形式のコンテンツをDrupalに簡単にインポートできます。さらに複雑な設定が必要な場合は、Feeds Tamperやカスタムパーサーを活用してください。

廣告