Twitter, tweets et Drupal
Depuis 2006, la communauté Drupal s’est dotée du site groups.drupal.org où chacun peut rejoindre ou créer son groupe Drupal. Il en existe pour les régions et groupes d’utilisateurs (par exemple Montréal et Québec), pour des gros projets, pour des initiatives, etc. Un groupe que j’aime bien s’appelle Similar Module Review et compare régulièrement des modules similaires.
Parfois, ce n’est pas très à jour, comme cette page wiki Microblogs, twitter and identica qui n’a pas été touchée depuis avril 2010. Notez, c’est une page wiki, c’est à dire éditable par tout le monde, moi compris. Mais voilà, il y a plusieurs façons de contribuer, ne me jetez pas de pierres svp.
Selon le site officiel de Drupal, 212 modules répondent à la recherche «Twitter OR Tweet», 102 compatible Drupal 7, 166 pour Drupal 6 et 31 pour Drupal 5. Ça fait beaucoup de modules à évaluer pour un truc de 140 caractères! Qu’est-ce qui se passe? D’abord, notons que plusieurs des modules identifiés par «twitter» sont énumérés parce que leur auteur a mis sa page Twitter dans la description du module, mais le module lui-même n’a rien à voir avec Twitter.
Il y a cinq usages pour un module qui va parler à Twitter:
- Lire et afficher des tweets
- Publier des tweets
- Inciter les visiteurs à publier un tweet contenant un lien vers notre page
- Pour s’identifier, se logguer à un autre site
- Trouver nos amis
La page wiki Comparing current Twitter-related modules sur le groupe Similar Module Review compare toutes ces options.
J’en ai aussi profité pour ouvrir un issue sur les modules de la catégorie «Lire et afficher» pour les inciter à travailler ensemble, si possible.
Pour manipuler les contenu de Twitter, nous avons deux stratégies à notre disponibilité:
- Utiliser le javascript de Twitter et laisser le client s’en occuper au frontend
- S’occuper de la relation avec Twitter via notre backend
Dans le premier cas, en javascript, le contenu de Twitter passe directement de ses serveurs à notre visiteur. Notre serveur est uniquement l’intermédiaire pour passer un javascript entre les deux. On est donc très limité dans nos interventions, côté Drupal. Le module entity external rating offre tout de même quelques possibilités.
Dans le second cas, c’est notre serveur Drupal qui est responsable de contacter Twitter et de faire suivre le contenu à notre visiteur. C’est ici que Drupal peut avoir les plus grands effets, mais cela dépendra grandement des modules utilisés. Il existe actuellement au moins 12 modules pour lire le contenu de Twitter, la plupart du temps avec des méthodes incompatibles. Par exemple, vous ne pourrez pas faire de Views avec le contenu, ou encore vous n’obtiendrez pas de nodes alors que vous en voulez. Certains modules, comme twitter pull stockent les tweets dans une table de cache de 20 minutes (configurable). Chaque module va offrir son propre API pour donner accès au contenu de Twitter, ce qui n’est franchement pas utile.
D’autres modules, comme feeds social, construisent sur Feeds ou une autre architecture standard et populaire et permettent ainsi une intégration plus profonde avec Drupal, ce qui permettra en théorie plus de fonctionnalités. Une fois le contenu pris en main par Feeds (on pourrait aussi utiliser le parser XPath directement au lieu de feeds social), on fera de chaque tweet un node, ou bien une rangée data - dès que ce dernier sera supporté à nouveau par Feeds. C’est que Data sort d’une longue léthargie depuis le départ de Development Seeds de la scène Drupal. Mais comme plusieurs autres de leurs projets, de nouveaux programmeurs s’affairent à prendre le relais.
Le module TwitterField a une très bonne approche, faisant le lien entre twitter_pull pour lire l’information, CCK/Fields de l’autre côté pour le stockage et widgets pour l’affichage. Mais comme je l’expliquais précédemment, je préfèrerais utiliser Feeds pour lire Twitter et stocker l’information avec CCK/Fields ou encore Data (quand cette fonctionnalité sera revenu dans Feeds 7.x).
En fait, Feeds pourrait utiliser un module, disons FeedField, qui pourrait servir à peu près comme TwitterField mais pour un usage beaucoup plus élargi. Peut-être un prochain module dans mon assiette… qui sait.
Entre temps, j’ai soumis cette patch #1428896 New box plugin: Select a text field when configuring a box qui permet de créer un bloc dynamique (via le module boxes) qui affichera le résultat Twitter selon un champ texte de votre choix.
Ah, j’oubliais, ne me cherchez pas sur Twitter, j’ai fermé mon compte. Deux fois.
Publier un nouveau commentaire