Como importar feeds externos para seu site Drupal 9 com o módulo Feeds
Publicados: 2020-11-03Como desenvolvedor, você se deparará com várias situações em que precisará importar dados de fontes externas. Às vezes, você precisará importar dados de mais de uma fonte para o seu site Drupal 9. O módulo Feeds no Drupal é um módulo simples e sem complicações que permite que até mesmo usuários não técnicos importem conteúdo de diferentes fontes de dados. O que o torna mais simples do que outros módulos Drupal, como o módulo Migrate, é que todo o processo de importação é feito por meio da IU do Drupal. Ele entrega conteúdo da maneira que você deseja, assim que estiver disponível.
Muitos sites importam feeds RSS / XML de sites de terceiros. Neste blog, vamos obter um feed de notícias importado por meio dessa API de terceiros que fornece dados no formato json com a ajuda do módulo Feeds no Drupal 9.

Instalando o Módulo de Alimentação Drupal
O módulo Feeds para Drupal 9 permite importar dados de diferentes formatos, como CSV, XML, JSON, RSS, etc. para nós, usuários e termos de taxonomia por meio da IU.
1. Instale o módulo Drupal Feeds (aqui estaremos usando o composer)
composer require 'drupal/feeds:^[email protected]'composer require 'drupal/feeds:^[email protected]'
2. Aqui, estamos usando feeds JSON para importar dados. Portanto, precisamos de um analisador JSON, que precisará da instalação de mais um módulo que é o analisador extensível de Feeds. A melhor maneira de instalar este módulo é usando o composer porque ele baixa todas as bibliotecas necessárias. (Você também pode pular a primeira etapa se estiver baixando usando o composer, pois o módulo de feeds do Drupal será uma dependência do módulo feed_ex ).
composer require 'drupal/feeds_ex:^[email protected]'composer require 'drupal/feeds_ex:^[email protected]'
Nota: Se você não estiver usando o composer para instalar, as bibliotecas exigidas por este módulo também podem ser instaladas com o módulo Ludwig. Instale o módulo Ludwig e vá para / admin / reports / packages para mais instruções.
3. Habilite o módulo feeds e feeds_ex (Analisadores extensíveis de feeds) usando drush ou por meio da IU.

Configurando e Implementando o Módulo de Feeds
Aqui, vamos importar os dados de https://newsapi.org/ artigos do site (tópicos relacionados a “ Principais manchetes do TechCrunch agora ”) que são expostos no formato JSON mostrado na captura de tela abaixo.
Para obter esses dados de notícias, precisamos fazer o login no site e obter uma chave API. Em seguida, selecione os tópicos para os quais deseja importar os dados para o seu site.

Olhando para a API, vamos criar um tipo de conteúdo onde nossos dados precisam ser importados.
Criação de um tipo de conteúdo
Aqui, criei um novo tipo de conteúdo chamado “ Notícias ”. Escolha o tipo de campo de acordo com seu JSON para o qual os dados precisam ser migrados.

Na captura de tela acima, escolhemos campos simples para importar os dados, como Autor, que é o campo Texto (simples) para a importação de dados do autor da chave JSON .

Como você pode ver na captura de tela acima, adicionamos o campo de item Feeds do tipo Feed e escolhemos o tipo de feed de acordo. Aprenderemos como criar um tipo de feed na próxima seção abaixo.
Criação de um tipo de feed
Siga as etapas abaixo para criar um tipo de feed.
- Navegue até a página de visão geral dos feeds ( / admin / structure / feeds ). Você pode ver todos os feeds do Drupal listados nesta página.
Já criei 2 feeds. Aqui, vou usar feeds de notícias . Você pode criar seu próprio tipo de feed clicando em Adicionar tipo de feed. - Ao editar o tipo de feed ou adicionar um novo tipo de feed, veremos as opções abaixo.
- Configurações básicas
Vamos definir as configurações básicas para o tipo de feed. Primeiro, forneça o nome, a descrição e a explicação ou as diretrizes de envio para o tipo de feed.
O período de importação (mostrado na guia de configurações abaixo) ajuda a escolher com que freqüência a importação deve ser executada. Isso será feito por meio de um cron job. Se você selecionar Desligado , a importação será feita manualmente.

- A opção de configurações do Fetcher mostra de onde você está importando o conteúdo ou de onde busca o conteúdo.
Ele oferece 3 opções para escolher,
- Diretório: - Importe o conteúdo de um arquivo ou de uma série de arquivos já existentes em seu site.
- Baixe da URL: - Importe o conteúdo da url (que iremos escolher no nosso caso).
- Carregar arquivo: - Importar conteúdo de um arquivo.
Com base no Fetcher selecionado, teremos que definir as configurações do Fetcher. Para a opção secundária de configurações do buscador, temos a lista de configurações abaixo.

- Auto-detecta feeds
- Use PubSubHubbub
- Sempre baixe
- Solicitar tempo limite
Defina as configurações secundárias de acordo.

• Parser permite configurar o formato do feed. Aqui temos muitas opções para escolher, como CSV, HTML, OPML, JsonPath (que é nossa configuração), etc. Escolha um no menu suspenso de acordo com o formato do seu feed.
Com base no analisador selecionado, teremos que definir as configurações do analisador. Em nosso caso, não temos nenhuma configuração de analisador para analisadores do tipo JsonPath.
• As configurações do processador mostram as configurações do tipo de conteúdo que o feed criará.
Da mesma forma, temos uma opção de configurações secundárias para o processador, conforme mostrado na imagem abaixo.

Defina suas configurações secundárias de acordo com o requisito.
A captura de tela abaixo mostra as configurações primárias do buscador, analisador e processador.

3. Mapeamento de fontes para destino
- Contexto
O texto de ajuda diz que a consulta de base deve ser executada, o que mostra a raiz ou base dos dados a serem direcionados para a importação de feeds do Drupal como conteúdo. Em nosso exemplo, nós o configuramos como “$ .articles . *” Porque nossos dados residem dentro da chave do artigo. Olhe a documentação deste caminho para configurar o seu.
- Mapeamentos de campo
Agora, podemos configurar o módulo Feeds para decidir qual valor extraído do JSON deve mapear para qual campo no tipo de conteúdo de notícias Drupal.
Esses destinos são os campos de dados Drupal e são extraídos com base no processador que você seleciona ao criar o tipo de feed. Você também pode definir outras configurações para os mapeamentos específicos dos campos, como Idioma, formato de filtro (aplicável para campos formatados de texto), exclusivo (identificador exclusivo usado para rastrear se o conteúdo é novo ou existente), etc.
Por exemplo, se quisermos importar o título do conteúdo do artigo de notícias do feed JSON como campo de título do conteúdo de notícias Drupal, o destino será o campo Título do Drupal e a fonte será a chave do título do artigo de notícias JSON, conforme mostrado na captura de tela abaixo.

Aqui, estamos usando a configuração de mapeamento, conforme mostrado na captura de tela abaixo.

Você também pode clonar o tipo de feed usando o módulo Drupal clone de entidade, que também é compatível com o Drupal 9.
Criação de um feed
Para criar um feed, navegue até o conteúdo -> guia Feeds -> adicionar feed -> selecione o tipo de feed

Já criei um para Notícias. Para criar um novo feed, clique no botão + Adicionar feed e configure o feed conforme necessário. Para o nosso blog, configuramos conforme mostrado na imagem abaixo.

Após a configuração, clique em Salvar e Importar . Isso importará os feeds do Drupal como conteúdo. Quando os dados estiverem sendo importados, você verá o status do processamento conforme mostrado na captura de tela abaixo.

Depois que os dados JSON são migrados para o conteúdo, podemos ver o conteúdo adicionado ao tipo de conteúdo de notícias, conforme mostrado na captura de tela abaixo.

Agora, vamos comparar o conteúdo importado com os feeds.


Para obter informações mais detalhadas, você pode consultar este guia.
Módulos adicionais para estender o módulo Feeds
• O módulo Feeds Tamper ajuda a modificar e atualizar os dados de origem antes que sejam importados para o seu site.
• Os analisadores extensíveis de feeds contêm um conjunto de analisadores como XPath XML e HTML, JSONPath JSON e analisador de linhas JSON, etc.
• O módulo de visualização de importação de feeds permite que você veja o conteúdo em sua fonte antes de importá-lo.
• Módulo Commerce Feeds ajuda você a importar produtos para o seu site Drupal Commerce.
