NAME
WWW::Finger::Webfinger - WWW::Finger module for Webfinger
DESCRIPTION
Webfinger is currently a very unstable specification, with implementation details changing all the time. Given this instability, it seems prudent to describe the protocol, as implemented by this package.
Given an e-mail-like identifier, the package will prepend "acct:" to it, assuming that the identifier doesn't already have a URI scheme. This identifier will now be called [ident].
The package looks up the host-meta file associated with the host for [ident]. It is 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>. Both these drafts are dated 19 November 2009.
A link template will be extracted from the host-meta for the host using either of the following two relationships: http://lrdd.net/rel/descriptor, http://www.iana.org/assignments/relation/lrdd. (Neither is prioritised, so if both exist and have different templates, hilarity will ensue.)
The token "{uri}" in the link template will be replaced with the URL-encoded version of [ident] to create an account descriptor URI.
The account descriptor URI is fetched via HTTP GET with an Accept header asking for RDF/XML, Turtle, RDF/JSON or XRD. The result is parsed for account description data if it has status code 200 (OK).
The following relationships/properties are understood in the account description:
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
As well as the standard WWW::Finger methods, WWW::Finger::Webfinger provides this additional method:
get($p1, $p2, ...)
-
$p1, $p2 and are RDF predicate URIs, XRD Link@rel values, or XRD Property@type values
# 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');
SEE ALSO
WWW::Finger, XRD::Parser, HTTP::LRDD.
http://code.google.com/p/webfinger/.
AUTHOR
Toby Inkster, <tobyink@cpan.org>
COPYRIGHT AND LICENCE
Copyright (C) 2009-2012 by Toby Inkster
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
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.