L’arrivée des liens diaspora://, ou la possibilité de publier un lien vers un message diaspora* qui s’ouvre dans le pod du cliqueur.

Voici une nouvelle fonctionnalité qui arrive bientôt dans diaspora*, et pas des moindres, puisqu’il s’agit de la mise en place d’un nouveau scheme (l’indication d’un protocole, comme https://). La prochaine version de diaspora* permettra à votre navigateur de gérer les liens commençant par diaspora:// !

Qu’est-ce que c’est ? À quoi ça sert ? Pourquoi un enchaînement de questions sonne-t-il mieux quand il y en a trois ? Nous vous expliquons tout !

Mais partons de la question la plus importante : à quoi ça sert, ou dit autrement, quel problème cherchons nous à résoudre ?

Le besoin initial, c’est la possibilité de faire un lien vers un message diaspora*. Vous savez, ce moment où vous dîtes, “tiens, c’est facile, c’est marqué là : https://diaspora-fr.org/posts/3602435. Et bien, que se passe-t-il quand quelqu’un clique sur cette URL ? Elle est chargée par le navigateur et le message est affiché. Problème : la personne qui a partagé le lien a son compte diaspora* sur le serveur https://diaspora-fr.org. Elle visionne donc le lien depuis ce site internet. Mais les personnes cliquant sur le lien peuvent très bien être inscrites sur d’autres serveurs diaspora* ! Elles se retrouvent donc sur un site où elles ne sont pas connectées (elles n’y ont d’ailleurs pas de compte) et ne peuvent donc pas réagir sur le message. Cela est pénible. Pire, pour les gens qui ne connaissent encore pas bien la décentralisation, cela peut être perturbant : l’interface est similaire, ils pensent avoir été déconnectés, essayent de se reconnecter, comme ce n’est pas leur serveur, cela ne marche pas… Certains vont même se créer un nouveau compte sur l’autre serveur !

D’autres malins se seront rendus compte que le site qui affichent le message n’est pas celui sur lequel ils sont inscrits. Ils essayeront donc de remplacer à la main dans l’URL diaspora-fr.org par framasphere.org par exemple. Problème, l’url contient l’identifiant local du message ( posts/3602435). Cela ne donne rien. Cette astuce fonctionne si l’on utilise le GUID, l’identifiant universel du message à travers tout le réseau diaspora*, accessible avec le permalien (l’icône de chaine qui apparait à côté de la date au survol d’un message). Le lien https://diaspora-fr.org/posts/16edcb805c5901368b05074458e9ec8c devient alors https://framasphere.org/posts/16edcb805c5901368b05074458e9ec8c et, si le message est connu du pod framasphere, il devient accessible. Mais cela nécessite d’aller modifier l’URL à la main, pas très pratique.

Une astuce consiste, pour le rédacteur, à mettre les liens dans diaspora* sous la forme [texte du lien](/posts/GUID) c’est à dire sans préciser le nom de domaine. Ce genre de lien est appelé “relatif” et les navigateurs vont automatiquement rajouter le nom de domaine au début. Donc, si j’écris ce lien ainsi, quand j’ouvre le message dans diaspora-fr, le lien commence par https://diaspora-fr.org/posts/..., et quand je l’ouvre dans framasphere, il commencera par https://framasphere.org/posts/....

Et bien voilà ! On a résolu notre problème ! Oui mais… non. D’abord, le rédacteur doit faire l’effort d’utiliser ce format, ce qui n’est pas toujours le cas. De plus, si le serveur du visiteur n’a jamais reçu le message en question, le GUID du lien ne correspondra à rien et une page 404 sera affichée. Autre problème, l’URL /posts/GUID est spécifique à diaspora*, cela ne marche donc pas pour les utilisateurs de la fédération depuis d’autres projets comme Friendica, Hubzilla ou SocialHome. Et surtout, le lien est relatif, donc, il n’est pas possible de le partager à l’extérieur de diaspora*, /posts/GUID n’a pas de sens depuis un site externe, un e-mail ou même un chat ! (Et puis s’amuser à écrire des URLs à la main, c’est pas super sympa et on risque de faire des erreurs).

Non non non, tout cela ne va pas, partager un lien vers un message devrait être plus simple. Et bien bonne nouvelle, maintenant, ça l’est.

Les serveurs diaspora* discutent entre eux grâce à la fédération, un protocole pour les réseaux sociaux décentralisés. On le disait ci-dessus, il est aussi utilisé par Friendica, Hubzilla, SocialHome et ganggo. Voilà quelques temps, le protocole a été amélioré pour permettre l’utilisation de liens diaspora://. Depuis la version 0.7.1.0, diaspora* est donc capable de gérer les liens commençant par diaspora://. Pour continuer notre exemple, voici le lien correspondant : diaspora://diaspora_news@diaspora-fr.org/post/e8c4e7105c5801368b07074458e9ec8c Je saisi ce texte et j’obtiens dans diaspora* après la publication de mon message https://diaspora-fr.org/posts/e8c4e7105c5801368b07074458e9ec8c. Le lien se transforme automatiquement selon le site depuis lequel vous ouvrez ce message. L’immense avantage, c’est que ce lien contient toutes les informations dont les serveurs diaspora* ont besoin pour aller chercher le message s’ils ne le connaissent pas. Il y a en plus du GUID, l’auteur et le serveur d’origine du message. Les serveurs diaspora* sont capables de comprendre que ce lien est un lien vers un message diaspora*, par rapport à l’astuce avec le lien relatif.

C’est donc bien mieux pour le partage de liens dans diaspora* (sachant qu’à l’avenir, il est prévu de transformer automatiquement les liens https://diaspora-fr.org/posts/3602435 en diaspora://diaspora_news@diaspora-fr.org/post/e8c4e7105c5801368b07074458e9ec8c pour ne pas que l’utilisateur ait à faire la manipulation). Oui, mais qu’en est-il de notre problème initial, partager un lien à l’extérieur de diaspora* ?

C’est là toute la raison de ce (très long) message : après avoir enregistré ce nouveau scheme à l’IANA, le code de diaspora* a été modifié et dans la version à venir, un petit bouton a été ajouté dans les paramètres :

Il permet d’indiquer au navigateur que les liens `diaspora://` doivent être ouvert avec le pod que vous choisissez. Lorsque l’on clique dessus, le message suivant apparaît :

Cliquez sur “Ajouter l’application” et voilà ! Essayez maintenant de saisir web+diaspora://diaspora_news@diaspora-fr.org/post/e8c4e7105c5801368b07074458e9ec8c dans la barre d’adresse de votre navigateur. Vous serez redirigé directement vers votre pod ! Il est donc maintenant possible de faire des liens comme celui-ci vers des messages diaspora* depuis n’importe où sur internet, et les personnes qui auront activé ce scheme dans leur navigateur seront redirigés directement vers leur serveur !

Vous voulez en savoir plus sur le sujet ? Toute la discussion est accessible sur le forum diaspora* (en anglais).