Home Programming News Use your individual person @ area for Mastodon discoverability with the WebFinger Protocol with out internet hosting a server

Use your individual person @ area for Mastodon discoverability with the WebFinger Protocol with out internet hosting a server

0
Use your individual person @ area for Mastodon discoverability with the WebFinger Protocol with out internet hosting a server

[ad_1]


Mastodon is a free, open-source social networking service that’s decentralized and distributed. It was created in 2016 as a substitute for centralized social media platforms similar to Twitter and Fb.

One of many key options of Mastodon is the usage of the WebFinger protocol, which permits customers to find and entry details about different customers on the Mastodon community. WebFinger is a straightforward HTTP-based protocol that permits a person to find details about different customers or sources on the web by utilizing their e mail deal with or different figuring out info. The WebFinger protocol is essential for Mastodon as a result of it permits customers to seek out and comply with one another on the community, no matter the place they’re hosted.

WebFinger makes use of a “well-known” path construction when calling an area. It’s possible you’ll be acquainted with the robots.txt conference. All of us simply agree that robots.txt will sit on the prime path of everybody’s area.

The WebFinger protocol is a straightforward HTTP-based protocol that permits a person or search to find details about different customers or sources on the web by utilizing their e mail deal with or different figuring out info. My is first identify finally identify .com, so…my private WebFinger API endpoint is right here https://www.hanselman.com/.well-known/webfinger

The concept is that…

  1. A person sends a WebFinger request to a server, utilizing the e-mail deal with or different figuring out info of the person or useful resource they’re making an attempt to find.

  2. The server seems to be up the requested info in its database and returns a JSON object containing the details about the person or useful resource. This JSON object is known as a “useful resource descriptor.”

  3. The person’s shopper receives the useful resource descriptor and shows the data to the person.

The useful resource descriptor incorporates varied kinds of details about the person or useful resource, similar to their identify, profile image, and hyperlinks to their social media accounts or different on-line sources. It might probably additionally embody different kinds of info, such because the person’s public key, which can be utilized to determine a safe reference to the person.

There’s an amazing explainer right here as properly. From that web page:

When somebody searches for you on Mastodon, your server will likely be queried for accounts utilizing an endpoint that appears like this:

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

Word that Mastodon person names begin with @ so they’re @[email protected]. Identical to twiter can be @[email protected] I will be @[email protected] now!

Searching for me with Mastodon

So maybe https://www.hanselman.com/.well-known/webfinger?useful resource=acct:[email protected]

Mine returns

{
"topic":"acct:[email protected]",
"aliases":
[
"https://hachyderm.io/@shanselman",
"https://hachyderm.io/users/shanselman"
],
"hyperlinks":
[
{
"rel":"http://webfinger.net/rel/profile-page",
"type":"text/html",
"href":"https://hachyderm.io/@shanselman"
},
{
"rel":"self",
"type":"application/activity+json",
"href":"https://hachyderm.io/users/shanselman"
},
{
"rel":"http://ostatus.org/schema/1.0/subscribe",
"template":"https://hachyderm.io/authorize_interaction?uri={uri}"
}
]
}

This file must be returned as a mime sort of utility/jrd+json

My web site is an ASP.NET Razor Pages web site, so I simply did this in Startup.cs to map that well-known URL to a web page/route that returns the JSON wanted.

companies.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?}");
});

then I made a webfinger.cshtml like this. Word I’ve to double escape the @@ websites as a result of it is Razor.

@web page
@{
Format = null;
this.Response.ContentType = "utility/jrd+json";
}
{
"topic":"acct:[email protected]",
"aliases":
[
"https://hachyderm.io/@@shanselman",
"https://hachyderm.io/users/shanselman"
],
"hyperlinks":
[
{
"rel":"http://webfinger.net/rel/profile-page",
"type":"text/html",
"href":"https://hachyderm.io/@@shanselman"
},
{
"rel":"self",
"type":"application/activity+json",
"href":"https://hachyderm.io/users/shanselman"
},
{
"rel":"http://ostatus.org/schema/1.0/subscribe",
"template":"https://hachyderm.io/authorize_interaction?uri={uri}"
}
]
}

This can be a static response, but when I used to be internet hosting pages for a couple of individual I might need to take within the url with the person’s identify, after which map it to their aliases and return these accurately.

Even simpler, you may simply use the JSON file of your individual Mastodon server’s webfinger response and SAVE IT as a static json file and replica it to your individual server!

So long as your server returns the fitting JSON from that well-known URL then it’s going to work.

So that is my template https://hachyderm.io/.well-known/webfinger?useful resource=acct:[email protected] from the place I am hosted now.

If you wish to get began with Mastodon, begin right here. https://github.com/joyeusenoelle/GuideToMastodon/ it seems like Twitter circa 2007 besides it isn’t owned by anybody and relies on internet requirements like ActivityPub.

Hope this helps!




About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, marketing consultant, father, diabetic, and Microsoft worker. He’s a failed stand-up comedian, a cornrower, and a ebook creator.

facebook
twitter
subscribe
About   E-newsletter

Internet hosting By
Hosted in an Azure App Service










[ad_2]

LEAVE A REPLY

Please enter your comment!
Please enter your name here