Publier sur Mastodon avec IFTTT

Labo

Depuis quelques jours, l’ambiance de Mastodon me rappelle furieusement celle de Twitter en 2007. Alors bloguons comme en 2007. Vous vous êtes plié au rituel de l’#introduction, mais vous avez décidé d’ignorer les avertissements plus ou moins revêches des gardiens du temps mammouthesque, et cherchez comment relayer automatiquement vos billets sur votre profil. IFTTT à la rescousse !

Mastodon possède des « fonctions de rappel », plus communément appelées webhooks, capables de déclencher des actions aussi diverses et variées que la publication d’un nouveau message. La plateforme d’automatisation IFTTT peut faire le lien entre votre blog et votre profil Mastodon : la publication d’un nouveau billet, et donc l’apparition d’un nouvel élément dans votre flux RSS, déclenche l’appel de la webhook, et donc la publication d’un nouveau message.

Après avoir ouvert un compte sur IFTTT, rendez-vous sur la page des intégrations aux webhooks, puis cliquez sur le bouton Connect. Cliquez sur le bouton Settings, puis relevez l’adresse URL de la forme https://maker.ifttt.com/use/XXXXX.

Rendez-vous dans la rubrique Développement des réglages de votre profil Mastodon, puis cliquez sur le bouton Nouvelle application, et indiquez les informations suivantes :

  • Nom : IFTTT ;
  • Site web de l’application : l’adresse URL fournie par IFTTT ;
  • URL de redirection : ne touchez à rien ;
  • Étendues : sélectionnez uniquement write:statuses.

Cliquez sur le bouton Envoyer pour enregistrer votre « application ». Sur la page Vos applications, cliquez sur IFTTT, puis relevez le jeton d’accès.

De retour sur IFTTT, cliquez sur le bouton Create pour créer une nouvelle automatisation. Cliquez sur le bouton If This > Add, puis cliquez sur RSS Feed, et choisissez New feed item. Indiquez l’adresse de votre flux RSS, puis cliquez sur le bouton Create trigger.

Cliquez maintenant sur le bouton Then That > Add, puis cliquez sur Webhooks, et choisissez Make a web request. Indiquez les informations suivantes :

  • URL : https://example.com/api/v1/statuses en remplaçant example.com par l’adresse de votre instance Mastodon ;
  • Method : POST ;
  • Content Type : application/x-www-form-urlencoded ;
  • Additional Headers : Authorization: Bearer XXXXX en remplaçant ’XXXXX’ par le jeton d’accès fourni par Mastodon.

Dans la section Body, cliquez sur le bouton Add ingredient pour consulter les éléments disponibles. Votre message peut simplement contenir le titre et l’adresse de votre billet :

status=<<<{{EntryTitle}}>>> <<<{{EntryUrl}}>>>

Vous pouvez ajouter quelques mots de présentation et un « mot-dièse » :

status=Je viens de publier un nouveau billet ! <<<{{EntryTitle}}>>> <<<{{EntryUrl}}>>> #zinzolin

Après avoir consulté la documentation de Mastodon, vous serez même capable de créer un brouillon privé, que vous pourrez personnaliser avant sa publication en utilisant la fonction Supprimer et réécrire :

visibility=direct&status=<<<{{EntryTitle}}>>> <<<{{EntryUrl}}>>>

Ou réserver vos écrits à un public averti :

sensitive=true&status=<<<{{EntryTitle}}>>> <<<{{EntryUrl}}>>>

Même après avoir consulté la documentation de Mastodon, vous serez incapable d’ajouter une illustration. IFTTT ne peut effectuer qu’une seule action, mais Mastodon considère la composition d’un message et l’ajout d’une illustration comme deux actions distinctes. Ne reste qu’à cliquer sur le bouton Create action pour enregistrer votre automatisation.

Vous venez de publier un nouveau billet, mais il n’a pas été relayé ? Rendez-vous sur IFTTT, puis choisissez votre automatisation dans la rubrique My Applets, et cliquez sur le bouton View activity. Vous pouvez être confronté à deux grands types d’erreur :

  • les erreurs 401 indiquent un problème d’autorisations : vérifiez que vous avez indiqué le bon Site web de l’application, que vous avez bien sélectionné l’étendue write:statuses, et que vous avez indiqué le bon jeton d’accès ;
  • les erreurs 422 indiquent un problème de formatage de la requête : vérifiez que vous n’avez pas oublié status= dans la section Body, et que votre message n’est pas trop long.

J’utilise une automatisation similaire pour le compte de MacGeneration, mais pas sur mon propre compte @zinzolin@imaginair.es, où je préfère sélectionner tel ou tel billet, une pratique plus compatible avec l’esprit des lieux. Pour recevoir tous les articles publiés sur Zinzolin, et même un peu plus, abonnez-vous plutôt au flux RSS.