Reste à savoir si Twitter s'effondre, même si certains signes sont révélateurs. Quoi qu'il arrive, je continue à investir un peu dans Mastodon. La semaine dernière, j'ai montré comment synchroniser son contenu entre Twitter et Mastodon.
Cette semaine, j'ai mis en place un pseudo Mastodon sur mon domaine qui redirige vers ma page de profil : je veux expliquer comment j'y suis parvenu et les problèmes que j'ai encore.
Mastodon est différent de Twitter en ce qu'il n'est pas centralisé : c'est une fédération de serveurs Mastodon, gérés indépendamment et connectés - le Fediverse . Pour être précis, le Fediverse est plus que des nœuds Mastodon, mais n'allons pas aussi loin.
Le premier problème quand on veut créer un compte Mastodon est de choisir la bonne instance. Mon premier choix était mastodon.social , mais il était fermé aux nouveaux comptes à l'époque. J'ai posé mes yeux sur mastodon.top sans aucune raison, mais qu'il était dans la liste des propositions et qu'il était français.
Le choix d'un serveur n'est pas si important puisque vous pouvez toujours déplacer votre compte vers une autre instance et conserver vos abonnés. Notez que vous laisserez (et perdrez) votre contenu sur le serveur d'origine. Dans tous les cas, votre profil est namespaced par le serveur ; ainsi, votre poignée change.
Actuellement, je suis @[email protected] . Mais, peut-être que je vais rejoindre mes amis sur foojay.social ou créer mon propre frankel.social
à l'avenir ? Dans les deux cas, je devrai changer le suffixe de mon handle.
Pourtant, je publie mon identifiant sur de nombreux sites et je ne veux oublier aucune mise à jour lors de la migration. Par conséquent, j'exige que le handle soit immutable .
J'ai mentionné plus haut que les nœuds Mastodon appartiennent à un réseau nommé Fediverse. Les nœuds Fediverse peuvent être connectés via plusieurs protocoles différents . Les nœuds Mastodon utilisent ActivityPub . En dessous, ActivityPub s'appuie sur WebFinger pour trouver l'emplacement correct d'une poignée.
Mastodon doit traduire @[email protected]
en https://mastodon.top/web/@frankel . La traduction doit avoir lieu sur n'importe quelle instance de Mastodon, quel que soit son domaine. Le processus est basé sur la spécification WebFinger , alias RFC 7033 :
WebFinger tel que décrit dans la RFC 7033 est une spécification qui définit une méthode pour résoudre les liens vers une ressource , étant donné uniquement un URI sur un serveur particulier. Cela permet à quiconque de rechercher où se trouve une ressource sans avoir à connaître son emplacement exact au préalable ; par exemple, par e-mail ou numéro de téléphone. Cette recherche est dirigée vers le point de terminaison
/.well-known/webfinger
, et un paramètre de requête deresource
est transmis avec la recherche. L'URI de ressource utilisée avec Mastodon est l'acct:
URI tel que décrit dans la RFC 7565 , avec le nom d'utilisateur d'un profil hébergé sur un domaine particulier.
D'après ce qui précède, lors de la recherche de mon profil, la requête est la suivante : https://mastodon.top/.well-known/webfinger?resource=acct:[email protected] . Vous pouvez vérifier en accédant à une instance Mastodon à laquelle vous êtes connecté, en recherchant mon identifiant et en surveillant le trafic via les outils de développement de votre navigateur préféré.
La réponse est la suivante :
{ "subject":"acct:[email protected]", "aliases":[ "https://mastodon.top/@frankel", #1 "https://mastodon.top/users/frankel" #1 ], "links":[ { "rel":"http://webfinger.net/rel/profile-page", #2 "type":"text/html", "href":"https://mastodon.top/@frankel" }, { "rel":"self", "type":"application/activity+json", "href":"https://mastodon.top/users/frankel" }, { "rel":"http://ostatus.org/schema/1.0/subscribe", "template":"https://mastodon.top/authorize_interaction?uri={uri}" } ] }
rel
pour MastodonteCela devrait fonctionner si je renvoie la même réponse à la même requête sur un domaine personnalisé. C'est ce que j'ai fait : https://blog.frankel.ch/.well-known/webfinger?resource=acct:[email protected] . Comme il s'agit d'une page statique et que je suis le seul compte, nous n'avons pas besoin du paramètre de requête : https://blog.frankel.ch/.well-known/webfinger .
Compte tenu de cela, je peux rechercher sur https://mastodon.top avec @[email protected]
(ou n'importe quelle poignée @frankel.ch
), et cela renvoie les résultats attendus :
J'ai vérifié sur d'autres instances, par exemple , https://mastodon.social/ , mais cela ne fonctionne pas. La raison est simple. Lors de la recherche sur l'instance sur laquelle vous êtes connecté, le XHR est https://mastodon.top/api/v2/search?q=@[email protected]&resolve=true&limit=5 ; sinon, c'est https://mastodon.top/api/v2/search?q=@[email protected]&resolve=false&limit=5 .
Conclusion : vous ne pouvez interroger les descripteurs sur la même instance que lorsque vous n'êtes pas authentifié.
La documentation confirme que si resolve
est false
, alors la requête n'essaie pas d'utiliser WebFinger :
resolve
Booléen. Tentative de recherche WebFinger ? La valeur par défaut est false.
La théorie derrière Mastodon et WebFinger est fascinante. J'ai réussi à configurer mon pseudo mastodonte immuable @[email protected]
. C'est le pseudo que je peux communiquer aux followers potentiels : si je change de serveur, je mettrai à jour le webfinger
avec mes nouvelles coordonnées.
L'astuce fonctionne car je suis le seul utilisateur Mastodon sur mon domaine. Si vous en avez plusieurs, vous devrez aller au-delà d'une page statique pour retourner un ID différent selon le paramètre acct:
; le reste reste le même.
Pour aller plus loin:
Publié à l'origine sur A Java Geek le 18 décembre 2022
Photo de Shashank Rana sur Unsplash