Use su propio usuario @ dominio para la detección de Mastodon con el Protocolo WebFinger sin alojar un servidor



Mastodon es un servicio gratuito de redes sociales de código abierto que está descentralizado y distribuido. Fue creado en 2016 como una alternativa a las plataformas de redes sociales centralizadas como Twitter y Fb.

Una de las características clave de Mastodon es el uso del protocolo WebFinger, que permite a los usuarios descubrir y acceder a información sobre otros usuarios en la pink de Mastodon. WebFinger es un protocolo easy basado en HTTP que permite a un usuario descubrir información sobre otros usuarios o recursos en Web utilizando su dirección de correo electrónico u otra información de identificación. El protocolo WebFinger es importante para Mastodon porque permite a los usuarios encontrarse y seguirse en la pink, independientemente de dónde estén alojados.

WebFinger usa una estructura de ruta “bien conocida” cuando llama a un dominio. Es posible que esté familiarizado con la convención de robots.txt. Todos estamos de acuerdo en que robots.txt se ubicará en la ruta superior del dominio de todos.

El protocolo WebFinger es un protocolo easy basado en HTTP que permite que un usuario o una búsqueda descubra información sobre otros usuarios o recursos en Web utilizando su dirección de correo electrónico u otra información de identificación. Mi nombre es el apellido .com, así que… mi punto last private de la API de WebFinger está aquí https://www.hanselman.com/.well-known/webfinger

La thought es que…

  1. Un usuario envía una solicitud de WebFinger a un servidor, utilizando la dirección de correo electrónico u otra información de identificación del usuario o recurso que está tratando de descubrir.

  2. El servidor busca la información solicitada en su base de datos y devuelve un objeto JSON que contiene la información sobre el usuario o el recurso. Este objeto JSON se denomina “descriptor de recursos”.

  3. El cliente del usuario recibe el descriptor de recursos y muestra la información al usuario.

El descriptor de recursos contiene varios tipos de información sobre el usuario o el recurso, como su nombre, foto de perfil y enlaces a sus cuentas de redes sociales u otros recursos en línea. También puede incluir otro tipo de información, como la clave pública del usuario, que puede utilizarse para establecer una conexión segura con el usuario.

hay un gran explicador aquí también. De esa página:

Cuando alguien lo busque en Mastodon, se le preguntará a su servidor por cuentas usando un punto last que se ve así:

CONSEGUIR https://${MASTODON_DOMAIN}/.well-known/webfinger?useful resource=acct:${MASTODON_USER}@${MASTODON_DOMAIN}

Tenga en cuenta que los nombres de usuario de Mastodon comienzan con @, por lo que son @username@someserver.com. Al igual que Twitter sería @shanselman@twitter.com, ¡puedo ser @shanselman@hanselman.com ahora!

Buscándome con Mastodon

Así que tal vez https://www.hanselman.com/.well-known/webfinger?useful resource=acct:FRED@HANSELMAN.COM

el mio regresa

{
"topic":"acct:shanselman@hachyderm.io",
"aliases":
(
"https://hachyderm.io/@shanselman",
"https://hachyderm.io/customers/shanselman"
),
"hyperlinks":
(
{
"rel":"http://webfinger.internet/rel/profile-page",
"sort":"textual content/html",
"href":"https://hachyderm.io/@shanselman"
},
{
"rel":"self",
"sort":"utility/exercise+json",
"href":"https://hachyderm.io/customers/shanselman"
},
{
"rel":"http://ostatus.org/schema/1.0/subscribe",
"template":"https://hachyderm.io/authorize_interaction?uri={uri}"
}
)
}

Este archivo debe devolverse como un tipo mime de aplicación/jrd+json

Mi sitio es un sitio de ASP.NET Razor Pages, por lo que acabo de hacer esto en Startup.cs para asignar esa URL conocida a una página/ruta que devuelve el JSON necesario.

providers.AddRazorPages().AddRazorPagesOptions(choices =>
{
choices.Conventions.AddPageRoute("/robotstxt", "/Robots.Txt"); //i did this earlier than, not wanted
choices.Conventions.AddPageRoute("/webfinger", "/.well-known/webfinger");
choices.Conventions.AddPageRoute("/webfinger", "/.well-known/webfinger/{val?}");
});

luego hice un webfinger.cshtml como este. Tenga en cuenta que tengo que escapar dos veces de los sitios @@ porque es Razor.

@web page
@{
Format = null;
this.Response.ContentType = "utility/jrd+json";
}
{
"topic":"acct:shanselman@hachyderm.io",
"aliases":
(
"https://hachyderm.io/@@shanselman",
"https://hachyderm.io/customers/shanselman"
),
"hyperlinks":
(
{
"rel":"http://webfinger.internet/rel/profile-page",
"sort":"textual content/html",
"href":"https://hachyderm.io/@@shanselman"
},
{
"rel":"self",
"sort":"utility/exercise+json",
"href":"https://hachyderm.io/customers/shanselman"
},
{
"rel":"http://ostatus.org/schema/1.0/subscribe",
"template":"https://hachyderm.io/authorize_interaction?uri={uri}"
}
)
}

Esta es una respuesta estática, pero si estuviera alojando páginas para más de una persona, me gustaría tomar la URL con el nombre del usuario, y luego asignarla a sus alias y devolverlos correctamente.

¡Aún más fácil, puede usar el archivo JSON de la respuesta webfinger de su propio servidor Mastodon y GUARDARLO como un archivo json estático y copiarlo en su propio servidor!

Siempre que su servidor devuelva el JSON correcto de esa URL conocida, funcionará.

Entonces esto es mi modelo https://hachyderm.io/.well-known/webfinger?useful resource=acct:shanselman@hachyderm.io desde donde estoy alojado ahora.

Si quieres empezar con Mastodon, empieza aquí. https://github.com/joyeusenoelle/GuideToMastodon/ se siente como Twitter alrededor de 2007, excepto que no es propiedad de nadie y se basa en estándares internet como ActivityPub.

¡Espero que esto ayude!




Acerca de Scott

Scott Hanselman es un ex profesor, ex arquitecto jefe en finanzas, ahora orador, consultor, padre, diabético y empleado de Microsoft. Es un comediante fracasado, un trenzador de maíz y un autor de libros.

Facebook
gorjeo
suscribir
Acerca de Boletin informativo

Hospedaje por
Alojado en un servicio de aplicaciones de Azure










Related Articles

Comments

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Same Category

El reciente incidente del robotic de ajedrez nunca debería haber ocurrido

Recientemente, hubo un incidente ampliamente publicitado en el...

Algunas reflexiones sobre el SARS-CoV-2 y el heparán sulfato

Algunas reflexiones sobre el SARS-CoV-2 y el heparán...
spot_img

Stay in touch!

Follow our Instagram