Ainda não se sabe se o Twitter desmorona, embora alguns sinais sejam reveladores. Aconteça o que acontecer, continuo investindo um pouco no Mastodon. Na semana passada, mostrei como sincronizar o conteúdo de alguém entre o Twitter e o Mastodon.
Esta semana, configurei um identificador Mastodon em meu domínio que redireciona para minha página de perfil: quero explicar como consegui e os problemas que ainda estou tendo.
O Mastodon é diferente do Twitter porque não é centralizado: é uma federação de servidores Mastodon, executados de forma independente e conectados - o Fediverse . Para ser mais preciso, o Fediverso é mais do que nós de mastodonte, mas não vamos tão longe.
O primeiro problema quando se deseja criar uma conta Mastodon é escolher a instância correta. Minha primeira escolha foi mastodon.social , mas estava fechado para novas contas na época. Coloquei meus olhos em mastodon.top sem nenhum motivo, a não ser que estava na lista de propostas e era francês.
A escolha de um servidor não é tão importante, pois você sempre pode mover sua conta para outra instância e manter seus seguidores. Observe que você deixará (e perderá) seu conteúdo no servidor original. Em todos os casos, seu perfil recebe namespace do servidor; assim, seu identificador muda.
Atualmente, sou @[email protected] . Mas talvez eu me junte a meus amigos no foojay.social ou crie meu próprio frankel.social
no futuro? Em ambos os casos, precisarei alterar o sufixo do meu identificador.
No entanto, publico meu identificador em muitos sites e não quero esquecer nenhuma atualização ao migrar. Portanto, exijo que o identificador seja imutável .
Mencionei acima que os nós Mastodon pertencem a uma rede chamada Fediverse. Os nós fediversos podem ser conectados através de vários protocolos diferentes . Os nós Mastodon usam ActivityPub . Por baixo, o ActivityPub depende do WebFinger para encontrar a localização correta de uma alça.
Mastodon precisa traduzir @[email protected]
para https://mastodon.top/web/@frankel . A tradução deve acontecer em qualquer instância do Mastodon, independentemente de seu domínio. O processo é baseado na especificação WebFinger , também conhecida como RFC 7033:
O WebFinger, conforme descrito no RFC 7033 , é uma especificação que define um método para resolver links para um recurso , dado apenas um URI em um servidor específico. Isso permite que qualquer pessoa procure onde um recurso está localizado sem ter que saber sua localização exata de antemão; por exemplo, por e-mail ou número de telefone. Essa pesquisa é direcionada para o terminal
/.well-known/webfinger
, e um parâmetro de consulta deresource
é passado junto com a pesquisa. O recurso URI usado com Mastodon é oacct:
URI conforme descrito em RFC 7565 , com o nome de usuário de um perfil que está hospedado em um determinado domínio.
De acordo com o exposto, ao pesquisar meu perfil, a consulta é a seguinte: https://mastodon.top/.well-known/webfinger?resource=acct:[email protected] . Você pode verificar acessando uma instância do Mastodon em que está conectado, procurando meu identificador e observando o tráfego por meio das ferramentas de desenvolvedor do seu navegador preferido.
A resposta é a seguinte:
{ "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
para mastodonteDeve funcionar se eu retornar a mesma resposta para a mesma consulta em um domínio personalizado. Foi o que fiz: https://blog.frankel.ch/.well-known/webfinger?resource=acct:[email protected] . Como é uma página estática e sou a única conta, não precisamos do parâmetro de consulta: https://blog.frankel.ch/.well-known/webfinger .
Diante disso, posso pesquisar em https://mastodon.top com @[email protected]
(ou qualquer identificador @frankel.ch
) e retornar os resultados esperados:
Eu verifiquei em outras instâncias, por exemplo , https://mastodon.social/ , mas não funcionou. A razão é simples. Ao pesquisar na instância em que você está conectado, o XHR é https://mastodon.top/api/v2/search?q=@[email protected]&resolve=true&limit=5 ; quando não, é https://mastodon.top/api/v2/search?q=@[email protected]&resolve=false&limit=5 .
Conclusão: você só pode consultar identificadores na mesma instância quando não estiver autenticado.
A documentação confirma que, se resolve
for false
, a consulta não tentará usar o WebFinger:
resolve
Boleano. Tentativa de pesquisa do WebFinger? O padrão é falso.
A teoria por trás do Mastodon e do WebFinger é fascinante. Consegui configurar meu identificador de mastodonte imutável @[email protected]
. Esse é o identificador que posso comunicar aos seguidores em potencial: se eu mudar para outro servidor, atualizarei o webfinger
com minhas novas coordenadas.
O truque funciona porque sou o único usuário do Mastodon em meu domínio. Se você tiver vários, precisará ir além de uma página estática para retornar um ID diferente, dependendo do parâmetro acct:
o resto continua igual.
Ir além:
Originalmente publicado em A Java Geek em 18 de dezembro de 2022
Foto de Shashank Rana no Unsplash