WWW::F...finger(3pm)
π NAME π
ok so like, <rainbow>WWW::Finger::Webfinger</rainbow> β it's the <pink>WWW::Finger</pink> module for Webfinger. that's it, that's the whole vibe. this page lives in the User Contributed Perl Documentation corner of WWW::F...finger(3pm) and honestly? it ate. π«Ά
β¨ DESCRIPTION β¨
bestie. i need you to sit down for this one.
Webfinger is currently a very unstable specification, and the implementation details change all the time. π like, constantly. so given that level of chaos, it just seems prudent to actually describe the protocol the way this package implements it. no gatekeeping here. π
so here's the deal. you hand it an e-mail-like identifier, and the package will prepend <mint>acct:</mint> to it β but only if the identifier doesn't already have a URI scheme. okay? from that point on, this identifier is gonna be called [ident]. remember that name, she's the main character now. π
then the package goes and looks up the host-meta file associated with the host for [ident]. it's assumed to be formatted according to:
- the draft-hammer-hostmeta-05 Internet Draft <http://tools.ietf.org/html/draft-hammer-hostmeta-05>, and
- XRD Working Draft 10 <http://www.oasis-open.org/committees/download.php/35274/xrd-1.0-wd10.html>
and like, for the record, both of those drafts are dated <lavender>19 November 2009</lavender>. vintage. π
a link template gets extracted from the host-meta for the host, using either of these two relationships:
β οΈ okay so important: neither one is prioritised. so if both of them exist and they have different templatesβ¦ hilarity will ensue. π not in a cute way. in a "which one wins" way. there is no winner. there is only chaos.
next up: the token <purple>{uri}</purple> inside that link template gets replaced with the URL-encoded version of [ident], and boom π₯ that creates an account descriptor URI.
that account descriptor URI gets fetched via HTTP GET with an Accept header asking for RDF/XML, Turtle, RDF/JSON or XRD. and the result gets parsed for account description data if it has status code <green>200 (OK)</green>. no 200, no data. that's the rule. π
πΈ what relationships/properties are understood? πΈ
in the account description, these are the ones she understands:
<http://xmlns.com/foaf/0.1/name><http://xmlns.com/foaf/0.1/homepage><http://webfinger.net/rel/profile-page><http://xmlns.com/foaf/0.1/weblog><http://xmlns.com/foaf/0.1/mbox><http://webfinger.net/rel/avatar><http://xmlns.com/foaf/0.1/img><http://xmlns.com/foaf/0.1/depiction><http://ontologi.es/sparql#endpoint>
π¦ the extra method π¦
on top of all the standard WWW::Finger methods, WWW::Finger::Webfinger also provides this additional method. and it's giving β¨
get($p1, $p2, ...)β$p1,$p2and are RDF predicate URIs, XRDLink@relvalues, or XRDProperty@typevalues
okay the wording on that one is the original's, i'm just carrying it faithfully, but here's how you'd actually use it:
# Returns phone numbers...
$finger->get('http://xmlns.com/foaf/0.1/phone',
'http://rdf.data-vocabulary.org/#tel');
# Salmon-style magic keys
$finger->get('magic-public-key');
phone numbers and salmon-style magic keys?? the range. the versatility. obsessed. π₯
π SEE ALSO π
WWW::FingerXRD::ParserHTTP::LRDD
and also <http://code.google.com/p/webfinger/> π
π«Ά AUTHOR π«Ά
Toby Inkster, <tobyink@cpan.org> β thank you for your service, icon. π
π COPYRIGHT AND LICENCE π
Copyright (C) <yellow>2009-2012</yellow> by Toby Inkster
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. periodt. π
π DISCLAIMER OF WARRANTIES π
THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
like, they said it in all caps so you know they meant it. no cap, no warranty, fr fr. π
π okay that's the whole page!! this was WWW::F...finger(3pm) from perl <mint>v5.32.1</mint>, dated <lavender>2021-09-11</lavender>. go forth and finger some webfingers, bestie. πβ¨π¦
π¦ where this page comes from
- debian bookworm: libwww-finger-perl 0.105-2 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- debian trixie: libwww-finger-perl 0.105-2 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu jammy: libwww-finger-perl 0.105-2 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu noble: libwww-finger-perl 0.105-2 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu resolute: libwww-finger-perl 0.105-2 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu stonking: libwww-finger-perl 0.105-2 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms