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
<
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.