Japon, jeux vidéo, Drupal, ... : le blog d'un geek !
Mon blog et mes galeries photo maintenant sur un même site !
J'y parlerai de mes passions : Japon et jeux vidéo principalement, mais du reste aussi.

Twitter : changement d'API, mettez à jour vos Drupal !

J'ai constaté aujourd'hui que mon site ne pouvait plus se connecter à Twitter (pour y poster mes articles). Cela date au plus de quelques jours, puisque mon post de mardi concernant le Mont Fuji est passé. En cherchant un peu, j'ai trouvé l'erreur "Basic authentication is not supported" et appris que Twitter devait interdire cette "authentification basique". Dans un premier temps, j'ai pesté parce que le module Twitter pour Drupal n'avait pas de mise à jour, mais j'ai trouvé par la suite un "contournement", dans l'issue queue du module Twitter.

Il s'agit d'utiliser le nouveau système d'authentification OAuth.

Voici la procédure (directement traduite du lien ci-dessus) :

  1. Mettez à jour, si nécessaire, le module Twitter à la version 6.x-3.0-beta2 (la version 2.x ne supporte pas OAuth). Pensez à exécuter update.php le cas échéant.
  2. Téléchargez et activez le module OAuth dans sa version 2.0.2 (la version 3.x ne fonctionne pas avec le module Twitter).
  3. Enregistrez votre application sur Twitter. Pour cela, commencez par visiter la page de configuration du module Twitter sur votre site (admin/settings/twitter), utilisez le lien fourni dans la partie OAuth settings (https://twitter.com/apps/new), puis remplissez le formulaire d'enregistrement d'application/site (le callback URL est visible dans la page d'admin de Twitter sur votre Drupal).
  4. Dans la page de configuration du module Twitter, sur votre site Drupal, remplissez les champs "OAuth Consumer key" et "OAuth Consumer secret" en utilisant les valeurs fournies par Twitter.
  5. Configurez le module OAuth (admin/settings/oauth) pour utiliser un chiffrement HMAC-SHA1.
  6. Editez votre compte d'utilisateur sur votre site Drupal, onglet Twitter (user/[id]/edit/twitter).
  7. Supprimez le ou les anciens comptes existants (ne supprime pas les tweets).
  8. Re-créez ces comptes en cliquant sur le bouton "Add account". La procédure sera nouvelle, avec un passage sur le site de Twitter pour confirmer que vous voulez autoriser cette application (il faut être loggé sur le compte Twitter voulu).
  9. Votre site doit maintenant être en mesure de poster vers Twitter en utilisant OAuth. De plus, Twitter mentionne que ces posts ont été faits "via votre application".
  10. Etape facultative (que je n'ai pas faite), vous pouvez applique les patchs listés à cette adresse pour que le bloc "Global Tweets" fonctionne de nouveau.

Voilà, la procédure m'a pris une dizaine de minutes, ce post sera le premier à tester si ça fonctionne de nouveau... Espérons !

Edit: mauvaise nouvelle, ça ne fonctionne pas encore... A suivre.

Edit 2: il faut configurer le module OAuth (admin/settings/oauth) pour utiliser un chifrement HMAC-SHA1, et faire attention à ce que le message ne fasse pas plus de 140 caractères (le module Twitter est mal codé et ne fait aucune vérification, ni ne fait remonter aucune erreur). Maintenant, ça fonctionne.