Twitter & WordPress, nouvelles règles en 2014

Vous êtes sûrement nombreux à relier vos blogs WordPress au réseau Twitter, ne serait-ce que pour permettre à vos lecteurs de partager vos contenus. Pour cela, peut-être utilisez-vous des plugins ou des hacks récupérés sur certains blogs...

Mais savez-vous que Twitter a décidé de changer ses règles en 2013 ? Connaissez-vous les web intents et les embedded timelines ?

Ne vous laissez pas impressionner par le jargon, c'est bien plus simple qu'il n'y paraît. Nous allons voir ensemble quels sont ces fameux changements concernant Twitter et comment tirer parti de techniques très simples pour rajouter de l'interactivité sur vos blogs.

twitter-bird-light-bgs

On serre la vis !

Depuis quelques mois on peut lire ceci dans la documentation officielle de Twitter :

We will be providing a 6 month window before turning off v1.0. Starting March 5th, 2013, the 1.0 endpoints will no longer be available.

En Français cela signifie que Twitter s'est laissé une fenêtre de 6 mois jusqu'au 5 mars 2013 pour opérer la transition vers une nouvelle version de son service. Cela se traduit pour les développeurs par une obligation, quasi systématique dorénavant, de s'authentifier pour continuer à interagir avec Twitter.

La conséquence d'un tel changement est de rendre tout simplement obsolètes la plupart des tutoriels, hacks voire même plugins WordPress. Ainsi les Tweets, anciennement récupérés grâce à un bout de code PHP par exemple, ne pourront plus l'être directement.

 

D'accord mais qu'est-ce que l'on peut y faire ?

Il y a plusieurs solutions mais il convient de savoir ce que l'on veut faire. Du coup, en rédigeant cet article je me suis dit qu'il serait plus parlant de m'appuyer sur des situations-type dans mes explications.

Cas 1- Les boutons de partage

Je vous recommande l'utilisation des web intents. Cette technique très simple vous permettra de rajouter de l''interactivité. Voici deux exemples concrets :

Afficher un lien vers votre profil Twitter

Au lieu de mettre  :

Mettez plutôt :

Le résultat donne une popup qui affiche l'image du profil Twitter, sa bio, ses statistiques ses followers et ses followings ainsi qu'un bouton pour suivre le compte en question. Avec cette technique tout simple on gagne nettement en interactivité mais également en termes d'expérience utilisateur car l'accès à l'information est plus rapide.

Ajouter un bouton de partage Twitter

Il suffira de rajouter le code suivant dans le functions.php :

function jm_bouton_twitter() {
 global $post;
 $text = urlencode($post->post_title);
 $url = urlencode(get_permalink());
 $twittos = 'indiquez_ici_votre_compte_Twitter_sans_@';
 echo '<a href="https://twitter.com/intent/tweet?text='.$text.'&amp;url='.$url.'&amp;via='.$twittos.'">Tweeter</a>';
 }

et dans votre thème :

<?php jm_bouton_twitter();?>

 

Cas 2- Les listes de Tweets

Pour afficher des listes de Tweets, les widgets Twitter sont tout indiqués. C'est ce que l'on appelle les embedded-timelines. Leur principal avantage est de ne pas être soumis aux quotas. Les quotas limitent le nombre d'opérations possibles avec Twitter dans un temps donné.

Autrement dit dans l'ancienne version du service Twitter, l'on avait droit à un certain nombre d'opérations chaque heure, désormais la limitation porte sur des tranches de 15 minutes !

Après avoir épluché la documentation, je trouve qu'il n'est pas pertinent de se lancer dans un codage relativement complexe pour afficher de simples listes de Tweets. Mieux vaut se rendre sur son compte Twitter dans paramètres > widgets, créer son widget (large choix : favoris, tweets, listes, etc.) et récupérer le code prêt à l'emploi.

Le design comme seul contre-argument

J'ai pu lire sur certains blogs qu'il ne fallait pas utiliser les widgets Twitter avec des arguments très forts comme :

c'est moche ! c'est pas pro !

J'aimerais tordre un peu le cou à ce genre de discours car bien souvent le but caché est de nous vendre un code. Or il y a 3 choses à dire là-dessus :

  • rien ne nous garantit la qualité du code en question
  • sans authentification, presque rien n'est possible avec Twitter en 2013
  • quand bien même le code est bon, il est soumis à quotas

 

Mes suggestions et conseils

Posez-vous vraiment la question de vos objectifs avant d'intégrer Twitter. Toutes les solutions ne se valent pas et surtout il n'y a pas de règle universelle. Face à ce constat, voici un récapitulatif des solutions qui fonctionnent et mes suggestions :

  • boutons de partage : utilisez les web intents et/ou le plugin Juiz Social Post Sharer qui est vraiment très complet et qui ne se limite pas à Twitter d'ailleurs.
  • les listes de tweets : utilisez les embedded-timelines (widgets Twitter)
  • le service ifttt.com pour automatiser votre communication sur Twitter, par exemple poster un Tweet approprié chaque fois qu'un nouvel article est posté sur votre site.
  • mes articles consacrés à Twitter sur TweetPress
  • mon plugin pour afficher votre dernier Tweet, Favori, Retweet ou Mention : JM Last Twit Shortcode
  • mon plugin JM Twitter Cards pour personnaliser vos cards et étendre vos Tweets

 

Conclusion

Sauf rares exceptions, Twitter exige désormais des connexions authentifiées. Tous les tutoriels et hacks qui ne se s'y conforment pas sont obsolètes.

Les plugins qui interagissent avec Twitter pour récupérer des Tweets ou poster pour votre compte doivent vous demander une authentification ou une autorisation.

 

A propos de l'auteur Julien Maury : Intégrateur et développeur WordPress, fervent lecteur du Codex, je crée des sites sous WordPress. J'aime aussi développer des plugins et proposer des astuces. Retrouvez-moi sur Twitter & Tweetpress.fr

A propos de l'auteur...

WPFormation

Fabrice Ducarme, formateur WordPress je suis éditeur, auteur et fondateur du site WP Formation.com. Conférencier lors des WordCamp Paris 2013 & 2015 ainsi qu'au WP Tech Nantes 2014, je vous propose plus de 400 articles & tutoriaux à propos de WordPress, mes trucs & astuces mais aussi des coups de gueule...

13 commentaires pertinents à ce jour ;)

  • Shelko dit :
    Le soucis (à moins qu’il y ai un autre moyen que je n’ai pas vu) c’est que l’embedded-timelines s’affiche dans une i-frame, donc, c’est un peu rapé pour ceux qui voulaient trouver une astuce au DC par ce système.
  • Benoît dit :
    Est-ce que l’extension Jetpack est concernée par ces changements ?
  • Julien Maury dit :
    Salut Shelko,
    Je comprends mais je pense qu’il est mieux de passer par là quand on veut afficher beaucoup de Tweets parce que les quotas sont vite atteint et l’on comprend que Twitter veut inciter à utiliser ses widgets en ne les soumettant pas aux mêmes quotas que l’API REST.

    Rien que le fait d’imposer une authentification pour pratiquement toutes les requêtes témoigne d’une volonté de restreindre l’utilisation de leur API. Sur mon blog j’ai fait quelques tutos pour ceux qui ne veulent pas passer par les widgets si tu veux mais c’est un peu plus technique (on passe par oAuth).

  • Julien Maury dit :
    @benoit: toute application qui interagit avec l’API Twitter est concernée en réalité. Si les dév ont bien mis à jour alors l’extension doit demander à un moment ou un autre une authentification.
  • Christian dit :
    Professionnellement je suis en relation avec Twitter. La date du 5 mars est effectivement une deadline, sauf pour des sociétés qui ont des contrats d’usage avec twitter et pour qui la sentence est reporté fin 2013 et pour certaines 2014. Cela dit il est préférable de passer à la nouvelle API de twitter le plus tôt possible pour ces sociétés car l’API new va offrir des avantages. Le seul soucis est le changement d’authent. qui remet en cause fondamentalement l’usage des affichages Twitter.
    J’utilise sur plusieurs sites via des text-widget WP, les widgets twitter :
    Avantage : rien à faire vis à vis du changement de politique de Twitter
    Désavantage : look incohérent avec le site (mais idem pour FB ou autres SN widgets). Mais c’est peine perdue de penser à le modifier car aucun widget de réseau social n’a intérêt à se conformer à un look ou a un autre. Il est pour eux question d’image de marque, d’imposer leur branding.

    Christian

  • Céline dit :
    Merci pour cette information dont je n’avais pas connaissance et pour vos conseils.
  • Julien Maury dit :
    Salut Céline,

    De rien :)

  • Julien Maury dit :
    : en effet certaines sociétés ont des contrats avec Twitter mais il s’agit de cas particuliers. Certes les raisons de ces restrictions sont compréhensibles d’un point de vue branding mais il n’y a pas que le look, j’appelle à utiliser les widget pour des raisons de quotas.

    J’insiste sur cette notion de quotas parce que cet élément est fondamental pour l’intégration de Twitter. Merci de votre retour :)

  • Xavier dit :
    On sent bien que twitter a du mal à monétiser leur service et qu’ils sont obligé de passer par ce genre de modifications pour forcer les abonnés à utiliser l’interface web. L’année dernière déjà, l’api avait subit de drastiques modifications qui avait fait du mal aux services tiers.

    Merci tout de meme une nouvelle fois pour ce tuto fort bien réalisé

  • Julien Maury ( dit :
    Salut Xavier, de rien :)

    Le point que tu soulèves est intéressant. Officiellement Twitter a déclaré en avoir raz la casquette de devoir composer avec des applications tierces qui faisaient strictement la même chose que l’interface web tout en changeant le vocabulaire donc sans aucun respect des conditions de la marque > sans contrefaçon…
    Le 2ème argument de Twitter porte sur l’innovation : « seuls les applications tierces créatives apportent quelque chose au service, les autres doivent être blacklistées.

    Mon sentiment là-dessus est que Twitter a, dans le sens de ce que tu dis, du mal à trouver un business model aussi rentable qu’un Facebook. Personnellement je vois mal comment le leur reprocher. En revanche leur système de whitelist et blacklist… je m’arrête avant de partir en #troll :)

  • Julien Maury dit :
    Euh, mettez un SVP à la place de jm_boutton() tout seul dans le template si vous utilisez ma fonction et moi je me mets 2 paires de claques donc 4 > <
  • Julien Maury dit :
    Le code est pas passé : if (function_exists(‘jm_bouton’) ) jm_bouton();
  • TweetPress dit :
    Du nouveau dans les widgets > moins de fioritures et une meilleure intégration dans vos design : https://t.co/GQav6da3WC
Tweet111
Share12
Share
Buffer13