Come importare feed esterni nel tuo sito web Drupal 9 con il modulo Feed

Pubblicato: 2020-11-03

Come sviluppatore, ti imbatterai in diverse situazioni in cui dovrai importare dati da fonti esterne. A volte dovrai importare dati da più di una fonte nel tuo sito web Drupal 9. Il modulo Feed in Drupal è un modulo semplice e senza fronzoli che consente anche agli utenti non tecnici di importare contenuti da diverse fonti di dati. Ciò che lo rende più semplice rispetto ad altri moduli Drupal come il modulo Migrate, è che l'intero processo di importazione viene eseguito tramite l'interfaccia utente di Drupal. Ti fornisce i contenuti nel modo desiderato non appena sono disponibili.

Molti siti Web importano feed RSS/XML da siti di terze parti. In questo blog, otterremo un feed di notizie importato tramite questa API di terze parti che fornisce dati in formato json con l'aiuto del modulo Feed in Drupal 9.

drupal-9-feed-modulo

Installazione del modulo Feed Drupal

Il modulo Feed per Drupal 9 ti consente di importare dati da diversi formati come CSV, XML, JSON, RSS, ecc. in nodi, utenti e termini di tassonomia tramite l'interfaccia utente.

1. Installa il modulo Drupal Feeds (qui useremo il compositore)

 composer require 'drupal/feeds:^[email protected]'
composer require 'drupal/feeds:^[email protected]'

2. Qui, stiamo usando i feed JSON per importare i dati. Quindi, abbiamo bisogno di un parser JSON che ci richiederà di installare un altro modulo che è il parser estensibile Feeds. Il modo migliore per installare questo modulo è utilizzare il compositore perché scarica tutte le librerie richieste. (Puoi anche saltare il primo passaggio se stai scaricando usando il compositore poiché il modulo feed di Drupal sarà una dipendenza per il modulo feed_ex ).

 composer require 'drupal/feeds_ex:^[email protected]'
composer require 'drupal/feeds_ex:^[email protected]'

Nota: se non utilizzi il compositore per l'installazione, le librerie richieste da questo modulo possono essere installate anche con il modulo Ludwig. Installa il modulo Ludwig e poi vai su /admin/reports/packages per ulteriori istruzioni.

3. Abilitare il modulo feeds e feeds_ex (Feeds Extensible Parser) utilizzando drush o tramite l'interfaccia utente.

Modulo Feed

Configurazione e implementazione del modulo Feed

Qui, importeremo i dati da https://newsapi.org/ articoli del sito Web (Argomenti relativi a " Titoli principali di TechCrunch in questo momento ") che è esposto in formato JSON mostrato nello screenshot qui sotto.

Per ottenere questi dati di notizie dobbiamo accedere al sito Web e ottenere una chiave API. Quindi, seleziona gli argomenti per i quali desideri importare i dati sul tuo sito web.

configurazione del modulo di alimentazione

Guardando l'API, creiamo un tipo di contenuto in cui i nostri dati devono essere importati.

Creazione di un tipo di contenuto

Qui, ho creato un nuovo tipo di contenuto chiamato " Notizie ". Scegli il tipo di campo in base al tuo JSON per il quale i dati devono essere migrati.

modulo di feed del tipo di contenuto

Nello screenshot sopra, abbiamo scelto campi semplici per importare i dati come Autore che è il campo Testo (normale) per l'importazione dei dati dall'autore della chiave JSON .

Autore chiave JSON

Come puoi vedere nella schermata sopra, abbiamo aggiunto il campo dell'elemento Feed di tipo Feed e scelto il tipo di feed di conseguenza. Impareremo come creare un tipo di feed nella sezione successiva di seguito.

Creazione di un tipo di feed

Segui i passaggi seguenti per creare un tipo di feed.

  1. Passare alla pagina Panoramica dei feed ( /admin/structure/feeds ). Puoi vedere tutti i feed Drupal elencati in questa pagina. tipo di alimentazione - modulo di alimentazione Ho già creato 2 feed. Qui userò i feed di notizie . Puoi creare il tuo tipo di feed facendo clic su Aggiungi tipo di feed.
  2. Quando si modifica il tipo di feed o si aggiunge un nuovo tipo di feed, verranno visualizzate le opzioni seguenti.
  • Impostazioni di base
    Configuriamo le impostazioni di base per il tipo di feed, in primo luogo, fornire il nome, la descrizione e la spiegazione o le linee guida per l'invio per il tipo di feed.
    Modulo feed impostazioni di base

    Il periodo di importazione (mostrato nella scheda delle impostazioni di seguito) ti aiuta a scegliere la frequenza con cui eseguire l'importazione. Questo sarà fatto attraverso un cron job. Se selezioni Off, l'importazione verrà eseguita manualmente.

moduli di alimentazione
  • L'opzione Impostazioni Fetcher mostra dove stai importando il contenuto o da dove prendi il contenuto.
    Fornisce 3 opzioni tra cui scegliere,
  1. Directory :- Importa il contenuto da un file o da una serie di file già presenti sul tuo sito web.
  2. Scarica dall'URL :- Importa il contenuto dall'URL (che sceglieremo nel nostro caso).
  3. Carica file: importa il contenuto da un file.

In base al Fetcher selezionato, dovremo configurare le impostazioni di Fetcher. Per l'opzione secondaria delle impostazioni di fetcher, abbiamo il seguente elenco di impostazioni.

  • Rileva automaticamente i feed
  • Usa PubSubHubbub
  • Scarica sempre
  • Richiedi time out

Configura le impostazioni secondarie di conseguenza.

Configura - moduli di alimentazione

Parser consente di configurare il formato del feed. Qui abbiamo molte opzioni tra cui scegliere come CSV, HTML, OPML, JsonPath (che è la nostra impostazione), ecc. Scegli quella dal menu a discesa in base al formato del tuo feed.

In base al parser selezionato, dovremo configurare le impostazioni del parser. Nel nostro caso, non abbiamo alcuna impostazione del parser per i parser di tipo JsonPath.

• Le impostazioni del processore mostrano le configurazioni del tipo di contenuto che verrà creato dal feed.

Allo stesso modo, abbiamo un'opzione di impostazioni secondarie per il processore, come mostrato nell'immagine qui sotto.

moduli di alimentazione

Configura le tue impostazioni secondarie in base ai requisiti.
La schermata seguente mostra le impostazioni principali di fetcher, parser e processore.

moduli di alimentazione


3. Mappare le origini verso l'obiettivo

  • Contesto

Il testo della guida dice query di base da eseguire, che mostra la radice o la base dei dati da mirare per l'importazione dei feed Drupal come contenuto. Nel nostro esempio, l'abbiamo configurato come "$.articles .*" perché i nostri dati risiedono all'interno della chiave dell'articolo. Guarda questa documentazione del percorso per configurare il tuo.

  • Mappature dei campi

Ora, possiamo configurare il modulo Feed per decidere quale valore estratto dal JSON deve mappare a quale campo nel tipo di contenuto delle notizie Drupal.

Questi obiettivi sono i campi dati di Drupal e vengono inseriti in base al processore selezionato durante la creazione del tipo di feed. Puoi anche configurare altre impostazioni per le mappature particolari dei campi come Lingua, formato del filtro (applicabile per campi formattati con testo), univoco (identificatore univoco utilizzato per tenere traccia se il contenuto è nuovo o esistente), ecc.

Ad esempio, se vogliamo importare il titolo del contenuto dell'articolo di notizie del feed JSON come campo del titolo del contenuto delle notizie di Drupal, l'obiettivo sarà il campo Titolo di Drupal e la fonte sarà la chiave del titolo dell'articolo di notizie JSON, come mostrato nello screenshot seguente.

Feed JSON

Qui stiamo usando la configurazione della mappatura come mostrato nello screenshot qui sotto.

moduli di alimentazione

Puoi anche clonare il tipo di feed utilizzando il modulo Entity clone Drupal supportato anche in Drupal 9.

Creazione di un feed

Per creare un feed, vai a contenuto -> scheda Feed -> aggiungi feed -> seleziona il tipo di feed

moduli di alimentazione

Ne ho già creato uno per News. Per creare un nuovo feed, fai clic sul pulsante + Aggiungi feed e configura il feed come richiesto. Per il nostro blog, abbiamo configurato come mostrato nello screenshot qui sotto.

moduli di alimentazione

Dopo la configurazione, fare clic su Salva e importa . Questo importerà i feed Drupal come contenuto. Quando i dati vengono importati, vedrai lo stato di elaborazione come mostrato nello screenshot qui sotto.

moduli di alimentazione

Una volta che i dati JSON vengono migrati al contenuto, possiamo vedere il contenuto aggiunto al tipo di contenuto delle notizie come mostrato nello screenshot qui sotto.

moduli di alimentazione

Ora confrontiamo il contenuto importato con i feed.

moduli di alimentazione
Contenuto sorgente dall'articolo techcrunch
moduli di alimentazione
Importazione feed Drupal - Modulo Feed

Per informazioni più dettagliate puoi fare riferimento a questa guida.

Moduli aggiuntivi per estendere il modulo Feed

• Il modulo Tamper feed ti aiuta a modificare e aggiornare i dati di origine prima che vengano importati nel tuo sito web.
• I parser estensibili dei feed contengono una serie di parser come XPath XML e HTML, JSONPath JSON e parser di linee JSON, ecc.
• Il modulo Anteprima importazione feed ti consente di vedere il contenuto nella tua fonte prima di importarlo.
• Il modulo Commerce Feeds ti aiuta a importare prodotti nel tuo sito Drupal Commerce.