/wordpress-webfinger

A WebFinger plugin for WordPress

Primary LanguagePHPMIT LicenseMIT

WebFinger

Contributors: pfefferle, willnorris
Donate link: https://notiz.blog/donate/
Tags: well-known, discovery, webfinger, JRD, ostatus, activitypub
Requires at least: 4.2
Tested up to: 4.9.8
Stable tag: 3.2.1
License: MIT
License URI: https://opensource.org/licenses/MIT

WebFinger for WordPress

Description

Enables WebFinger (RFC 7033) support for WordPress.

About WebFinger:

WebFinger is used to discover information about people or other entities on the Internet that are identified by a URI using standard Hypertext Transfer Protocol (HTTP) methods over a secure transport. A WebFinger resource returns a JavaScript Object Notation (JSON) object describing the entity that is queried. The JSON object is referred to as the JSON Resource Descriptor (JRD).

(quote from the RFC)

Installation

  1. Upload the webfinger-folder to the /wp-content/plugins/ directory
  2. Activate the plugin through the Plugins menu in WordPress
  3. ...and that's it :)

Frequently Asked Questions

How to extend the JRD file

You can add your own links or properties like that:

function oexchange_target_link( $array ) {
  $array["links"][] = array( 'rel' => 'http://oexchange.org/spec/0.8/rel/resident-target',
    'href' => 'http://example.com',
    'type' => 'application/xrd+xml' );
  return $array;
}
add_filter( 'webfinger', 'oexchange_target_link' );

Add alternate file/output formats

You can add your own links or properties like that:

function render_xrd($webfinger) {
  // set custom header();

  // JRD to XRD code

  exit;
}
add_action( 'webfinger_render', 'render_xrd', 5 );

You can find a detailed example here https://github.com/pfefferle/wordpress-webfinger-legacy

The spec

WebFinger is specified as RFC 7033

The WebFinger community page

Please visit http://webfinger.net

Upgrade Notice

3.0.0

This versions drops classic WebFinger support to keep the plugin short and simple. All legacy stuff is bundled in this new plugin https://github.com/pfefferle/wordpress-webfinger-legacy

Changelog

Project maintained on github at pfefferle/wordpress-webfinger.

3.2.1

  • make acct protocol optional

3.2.0

  • global refactoring

3.1.6

  • added user_nicename as resource
  • fixed WordPress coding standard issues

3.1.5

  • fixed PHP warning

3.1.4

  • updated requirements

3.1.3

  • add support for the 'aim', 'ymsgr' and 'acct' protocol

3.1.2

  • fixed the legacy code
  • added feeds

3.1.1

  • fixed 'get_user_by_various' function

3.1.0

  • Added WebFinger legacy plugin, because the legacy version is still very popular and used by for example OStatus (Mastodon, Status.NET and GNU Social)
  • Added Webfinger for posts support

3.0.3

  • composer support
  • compatibility updates

3.0.2

  • get_avatar_url instead of custom code
  • some small code improvements
  • nicer PHP-docs

3.0.1

  • updated version informations
  • support the WordPress Coding Standard

3.0.0

  • added correct error-responses
  • remove legacy support for XRD and host-meta (props to Will Norris)

2.0.1

  • small bugfix

2.0.0

  • complete refactoring
  • removed simple-web-discovery
  • more filters and actions
  • works without /.well-known/ plugin

1.4.0

  • small fixes
  • added "webfinger" as well-known uri

1.3.1

  • added "rel"-filter (work in progress)
  • added more aliases

1.3

  • added host-meta resource feature (see latest spec)

1.2

  • added 404 http error if user doesn't exist
  • added jrd discovery for host-meta

1.1

1.0.1

  • api improvements

1.0

  • basic simple-seb-discovery
  • json support
  • some small improvements

0.9.1

0.9

  • OStatus improvements
  • Better uri handling
  • Identifier overview (more to come)
  • Added filters
  • Added functions to get a users webfingers

0.7

  • Added do_action param (for future OStatus plugin)
  • Author-Url as Webfinger-Identifier

0.5

  • Initial release