So importieren Sie externe Feeds in Ihre Drupal 9-Website mit dem Feeds-Modul
Veröffentlicht: 2020-11-03Als Entwickler werden Sie auf mehrere Situationen stoßen, in denen Sie Daten aus externen Quellen importieren müssen. Manchmal müssen Sie Daten aus mehr als einer Quelle in Ihre Drupal 9-Website importieren. Das Feeds-Modul in Drupal ist ein einfaches, unkompliziertes Modul, das es selbst technisch nicht versierten Benutzern ermöglicht, Inhalte aus verschiedenen Datenquellen zu importieren. Was es einfacher macht als andere Drupal-Module wie das Migrate-Modul, ist, dass der gesamte Importvorgang über die Benutzeroberfläche von Drupal erfolgt. Es liefert Ihnen Inhalte so, wie Sie es möchten, sobald sie verfügbar sind.
Viele Websites importieren RSS / XML-Feeds von Websites Dritter. In diesem Blog erhalten wir einen über diese Drittanbieter-API importierten Newsfeed, der mithilfe des Feeds-Moduls in Drupal 9 Daten im JSON-Format bereitstellt.

Installieren des Drupal-Feeds-Moduls
Mit dem Feeds-Modul für Drupal 9 können Sie Daten aus verschiedenen Formaten wie CSV, XML, JSON, RSS usw. über die Benutzeroberfläche in Knoten, Benutzer und Taxonomiebegriffe importieren.
1. Installieren Sie das Drupal Feeds-Modul (hier verwenden wir Composer)
composer require 'drupal/feeds:^[email protected]'composer require 'drupal/feeds:^[email protected]'
2. Hier verwenden wir JSON-Feeds zum Importieren von Daten. Daher benötigen wir einen JSON-Parser, bei dem wir ein weiteres Modul installieren müssen, den erweiterbaren Feeds-Parser. Der beste Weg, dieses Modul zu installieren, ist die Verwendung von Composer, da es alle erforderlichen Bibliotheken herunterlädt. (Sie können den ersten Schritt auch überspringen, wenn Sie mit Composer herunterladen, da das Drupal-Feeds-Modul eine Abhängigkeit vom feed_ex- Modul ist).
composer require 'drupal/feeds_ex:^[email protected]'composer require 'drupal/feeds_ex:^[email protected]'
Hinweis: Wenn Sie nicht Composer zur Installation verwenden, können die von diesem Modul benötigten Bibliotheken auch mit dem Ludwig-Modul installiert werden. Installieren Sie das Ludwig-Modul und gehen Sie dann zu /admin/reports/packages für weitere Anweisungen.
Aktivieren die Feeds und feeds_ex (Feeds Extensible Parsers) Modul 3. entweder durch drush verwendet oder durch UI.

Feeds-Modul konfigurieren und implementieren
Hier importieren wir die Daten aus https://newsapi.org/ Website-Artikeln (Themen im Zusammenhang mit " Top-Schlagzeilen von TechCrunch jetzt "), die im JSON-Format bereitgestellt werden, wie im folgenden Screenshot gezeigt.
Um diese Nachrichtendaten zu erhalten, müssen wir uns auf der Website anmelden und einen API-Schlüssel erhalten. Wählen Sie als Nächstes die Themen aus, für die Sie die Daten auf Ihre Website importieren möchten.

Betrachten wir die API und erstellen wir einen Inhaltstyp, in den unsere Daten importiert werden müssen.
Erstellen eines Inhaltstyps
Hier habe ich einen neuen Inhaltstyp namens „ News “ erstellt. Wählen Sie den Feldtyp entsprechend Ihrem JSON aus, für den Daten migriert werden müssen.

Im obigen Screenshot haben wir einfache Felder zum Importieren der Daten ausgewählt, z. B. Autor, das Textfeld (einfach) für den Import von Daten vom JSON-Schlüsselautor .

Wie Sie im obigen Screenshot zu sehen, haben wir den Feeds Artikel Feld vom Typ - Feed und ausgewählt , um den Feed - Typ entsprechend hinzugefügt. Im nächsten Abschnitt unten erfahren Sie, wie Sie einen Feedtyp erstellen.
Erstellen eines Feedtyps
Führen Sie die folgenden Schritte aus, um einen Feedtyp zu erstellen.
- Navigieren Sie zur Seite Feeds-Übersicht ( /admin/structure/feeds ). Sie können alle auf dieser Seite aufgelisteten Drupal-Feeds sehen.
Ich habe bereits 2 Feeds erstellt. Hier werde ich Newsfeeds verwenden . Sie können Ihren eigenen Feedtyp erstellen, indem Sie auf Feedtyp hinzufügen klicken. - Wenn Sie den Feedtyp bearbeiten oder einen neuen Feedtyp hinzufügen, sehen wir die folgenden Optionen.
- Grundeinstellungen
Lassen Sie uns die Grundeinstellungen für den Feedtyp konfigurieren. Geben Sie zunächst den Namen, die Beschreibung und die Erklärung oder die Richtlinien für die Übermittlung des Feedtyps an.
Der Importzeitraum (wird auf der Registerkarte Einstellungen unten angezeigt) hilft Ihnen bei der Auswahl, wie oft der Import ausgeführt werden soll. Dies geschieht über einen Cron-Job. Wenn Sie Aus wählen, wird der Import manuell durchgeführt.

- Die Option Abrufeinstellungen zeigt an, wo Sie den Inhalt importieren oder abrufen.
Es bietet 3 Optionen zur Auswahl,
- Verzeichnis: - Importieren Sie den Inhalt aus einer Datei oder einer Reihe von Dateien, die sich bereits auf Ihrer Website befinden.
- Von URL herunterladen: - Importieren Sie den Inhalt von der URL (die wir in unserem Fall auswählen werden).
- Datei hochladen: - Inhalt aus einer Datei importieren.
Basierend auf dem ausgewählten Fetcher müssen wir die Fetcher-Einstellungen konfigurieren. Für die sekundäre Option der Abrufereinstellungen haben wir die folgende Liste von Einstellungen.

- Automatische Erkennung von Feeds
- PubSubHubbub verwenden
- Immer herunterladen
- Zeitüberschreitung der Anforderung
Konfigurieren Sie die sekundären Einstellungen entsprechend.

• Mit Parser können Sie das Format des Feeds konfigurieren. Hier haben wir viele Optionen zur Auswahl, wie CSV, HTML, OPML, JsonPath (was unsere Einstellung ist) usw. Wählen Sie diejenige aus dem Dropdown-Menü entsprechend Ihrem Feed-Format aus.
Basierend auf dem ausgewählten Parser müssen wir die Parser-Einstellungen konfigurieren. In unserem Fall haben wir keine Parser-Einstellungen für Parser vom Typ JsonPath.
• Prozessoreinstellungen zeigen Konfigurationen des Inhaltstyps, den der Feed erstellt.
Ebenso haben wir eine sekundäre Einstellungsoption für den Prozessor, wie in der Abbildung unten gezeigt.

Konfigurieren Sie Ihre sekundären Einstellungen entsprechend der Anforderung.
Der folgende Screenshot zeigt die primären Einstellungen von Fetcher, Parser und Prozessor.

3. Quellen dem Ziel zuordnen
- Kontext
Der Hilfetext besagt, dass die Basisabfrage ausgeführt werden soll, die den Stamm oder die Basis der Daten anzeigt, die für den Import von Drupal-Feeds als Inhalt verwendet werden sollen. In unserem Beispiel haben wir es als „$.articles .*“ konfiguriert, da sich unsere Daten im Artikelschlüssel befinden. Sehen Sie sich diese Pfaddokumentation an, um Ihre zu konfigurieren.
- Feldzuordnungen
Jetzt können wir das Feeds-Modul konfigurieren, um zu entscheiden, welcher aus dem JSON abgerufene Wert welchem Feld des Drupal-Nachrichteninhaltstyps zugeordnet werden soll.
Diese Ziele sind die Drupal-Datenfelder und werden basierend auf dem Prozessor abgerufen, den Sie beim Erstellen des Feedtyps ausgewählt haben. Sie können auch andere Einstellungen für die jeweiligen Zuordnungen der Felder konfigurieren, wie z. B. Sprache, Filterformat (gilt für textformatierte Felder), eindeutig (eindeutige Kennung, die verwendet wird, um zu verfolgen, ob der Inhalt neu oder vorhanden ist) usw.
Wenn wir beispielsweise den Inhaltstitel des JSON-Feed-Nachrichtenartikels als Titelfeld des Drupal-Nachrichteninhalts importieren möchten, ist das Ziel das Drupal-Titelfeld und die Quelle ist der Titelschlüssel des JSON-Nachrichtenartikels, wie im folgenden Screenshot gezeigt.

Hier verwenden wir die Mapping-Konfiguration, wie im folgenden Screenshot gezeigt.

Sie können den Feed-Typ auch mit dem Drupal-Modul Entity Clone klonen, das auch in Drupal 9 unterstützt wird.
Erstellen eines Feeds
Um einen Feed zu erstellen, navigieren Sie zu Inhalt -> Registerkarte Feeds -> Feed hinzufügen -> wählen Sie den Feedtyp aus

Ich habe bereits eine für News erstellt. Um einen neuen Feed zu erstellen, klicken Sie auf die Schaltfläche + Feed hinzufügen und konfigurieren Sie den Feed nach Bedarf. Für unseren Blog haben wir wie im Screenshot unten gezeigt konfiguriert.

Klicken Sie nach der Konfiguration auf Speichern und importieren . Dadurch werden die Drupal-Feeds als Inhalt importiert. Wenn die Daten importiert werden, sehen Sie den Verarbeitungsstatus wie im folgenden Screenshot gezeigt.

Sobald die JSON-Daten zu Inhalten migriert wurden, können wir den Inhalt sehen, der dem Nachrichteninhaltstyp hinzugefügt wurde, wie im Screenshot unten gezeigt.

Vergleichen wir nun den importierten Inhalt mit Feeds.


Ausführlichere Informationen finden Sie in diesem Handbuch.
Zusatzmodule zur Erweiterung des Feeds-Moduls
• Das Feeds Tamper-Modul hilft Ihnen, die Quelldaten zu ändern und zu aktualisieren, bevor sie auf Ihre Website importiert werden.
• Erweiterbare Feeds-Parser enthalten eine Reihe von Parsern wie XPath XML & HTML, JSONPath JSON & JSON Lines Parser usw.
• Mit dem Feeds-Importvorschau-Modul können Sie den Inhalt Ihrer Quelle anzeigen, bevor Sie ihn importieren.
• Das Commerce Feeds-Modul hilft Ihnen beim Importieren von Produkten auf Ihre Drupal Commerce-Site.
