Développement d’un module Drupal de publication sur des réseaux sociaux

Création d'un module Drupal pour les réseaux sociaux
23 juin 2022

Il y a quelques semaines , un très ancien contact issu de notre tout premier client agence web (ça remonte a près de 20 ans maintenant…) nous a consulté sur la possibilité de développer un module sur Drupal 9. Le but étant de pouvoir publier directement grâce au futur module Drupal du contenu sur Facebook et Instagram. Après quelques échanges, nous avons pu mieux cerner le souhait, prépare un devis, qui a été approuvé, ce qui nous a permis de nous atteler à la création du nouveau module Drupal

Affichage des articles publiés sur les réseaux sociaux avec nombre de likes et commentaires

Développement du module réseaux sociaux

Les pré-requis de l’agence web française cliente étant de pouvoir utiliser le module Drupal 9 en multi-sites. Qu’il soit développe à partir de 0 ou en utilisant une base existante ne posait dans les deux cas aucun problème. L’important étant que cela fonctionne, que le code soit “propre”, qu’il respecte les normes PSR et les recommandations Symfony.

En terme de fonctionnalité, il s’agissait de permettre aux clients de l’agence web de publier depuis leur site Drupal 9 du contenu sur Facebook et Instagram en utilisant l’API fournie par Meta.

Le cauchemar: validation de module par Facebook

En plus du développement du module Drupal proprement dit, qui s’est avéré assez facile et rapide, un important enjeu a été représentée par la création de l’app et l’obtention des clés d’acces de Facebook

Cela a représenté un volume horaire très conséquent, car il a fallu fournir :

Des informations sur la société éditrice

Des explications sur le module,

La documentation du module,

Une video en montant le fonctionnement

etc

En plus, un compte Facebook pro était indispensable pour demander la réalisation du module. Nous avons eu la chance que notre programmeur en ait crée un pour un développement antérieur. Cela nous a évité d’autres pertes de temps d’autant que la création d’un nouveau compte s’est avérée particulièrement ardue.

La difficulté vient du fait que « les échanges » de l’entité développeuse (Transycons) avec Meta pour faire valider le module Drupal n’ont pas eu lieu avec des humains, mais avec des algorithmes, ce qui a parfois induit de tourner en rond sans savoir d’où venait le problème.

Ensuite pour obtenir l’approbation de Facebook de l’utilisation de son API, le client nous a demandé une assistance vu la complexité de la procédure.

A noter aussi l’évolution rapide de l’API de Facebook qui en seulement 3 semaines est passée de la version 13 à 14, avec des implications en terme de maintenance.

Paramétrage de connexion à l’API META

Bref, au final la charge de travail « administrative » au sens large aura probablement dépassé le travail purement technique de développement d’un tel module pour Drupal…

Le module Drupal de publication sur Instagram

Publication d’articles sur Instagram et Facebook

Nous nous sommes d’abord concentrés sur Facebook, avant d’avancer sur Instagram.

Compte tenu du fait que Meta englobe notamment Facecebook ET instagram, une partie du travail a en fait été commune, mais une partie seulement.

En effet l’API pour Facebook nous permet de publier le contenu de l’article, mais les éléments affichés sur les pages Facebook sont repris automatiquement par Facebook à partir des balises <title> et <image> de l’article en Drupal. Donc c’est à l’équipe Front-End de préparer ces balises dans les templates pour qu’elles soient bien utilisés par Facebook.

Paramétrage des publications sur Facebook

Par contre pour Instagram, l’API nous permet de définir des champs spéciaux pour le contenu et l’image directement dans le module Drupal.

Paramétrage des publications sur Instagram

Le multi-site du module en question

Le client nous a précisé qu’il voulait installer ce module sur une installation Drupal 9 en multi-sites et pouvoir l’activer à la demande sur tout les sites qui en auraient le besoin.

Or les sites étant le plus souvent indépendants les uns des autres, dans les faits il est forcément nécessaire d’installer ce module sur chaque site Drupal pour lequel on souhaite bénéficier des fonctionnalités vers les réseaux sociaux… le module s’adapte à tous les sites, mais en général pris de manière individuelle…

En conclusion, le résultat a manifestement dépassé les espérances initiales du client. Une mini équipe Transycons a réalisé avec succès ce projet stimulant de création de module pour Drupal 9.

Il s’est agi d’un complément intéressant à la création récente ou prochaine de sites de CMS Drupal pour des organisations souvent transnationales.

La création de modules pour Drupal est plus technique et « administrative », assez différente de l’intégration de contenus souvent nombreux et diversifiés, mais ensemble cela peut concourir à la création d’un même site Drupal réussi.