OStatus/Interop

From StatusNet
Revision as of 03:32, 11 August 2011 by 84.44.229.233 (Talk)
Jump to: navigation, search

Some PuSH-enabled services we've poked at so far to see how well they play with OStatus...

Service Consume from Publish to Webfinger Salmon replies Salmon activities Groups Notes
StatusNet Gnome-emblem-default.svg.png  Gnome-emblem-default.svg.png  partial Gnome-emblem-default.svg.png  Gnome-emblem-default.svg.png  Gnome-emblem-default.svg.png  With OStatus plugin. No webfinger for groups.
Google Buzz Gnome-emblem-default.svg.png  Gnome-emblem-default.svg.png  Need to fix hcard processing when subbed by profile
Tumblr Gnome-emblem-default.svg.png  only 0.9.1, better author info
LiveJournal Need better author info
WordPress Gnome-emblem-default.svg.png  Gnome-emblem-default.svg.png  With PuSH plugin (PuSHPress (enabled on wordpress.com) and/or PubSubHubub) and a few more (/.well-known/, host-meta, Webfinger, Salmon, ActivityStream Extension, OStatus for WordPress). 0.9.1, possibly better author info?
Blogspot partial Has problems conflating blogs and authors, see details.
Drupal Needs to be tested Gnome-emblem-default.svg.png  Needs to be tested No ?? Module available Feeds 1.0 alpha 12 has support for pubsubhubbub, someone please test
Cliqset Gnome-emblem-default.svg.png  Gnome-emblem-default.svg.png  Gnome-emblem-default.svg.png 
Elgg testing testing intended testing testing partial Implemented as additional plugins.
Gowalla Gnome-emblem-default.svg.png 
Posterous Gnome-emblem-default.svg.png  Only 0.9.1, they've got PubSubHubbub-enabled Activity Streams in RSS, annoying Permalink and Comments links.
MiniMe Gnome-emblem-default.svg.png  Gnome-emblem-default.svg.png  partial Gnome-emblem-default.svg.png  Gnome-emblem-default.svg.png  No WebFinger works for acct: and http: URI's, No group support yet.
Project Danube Gnome-emblem-default.svg.png  Gnome-emblem-default.svg.png  Gnome-emblem-default.svg.png  partial Gnome-emblem-default.svg.png  No Personal Data Store


Contents

Google Buzz

Gnome-emblem-default.svg.png  This should be fairly straightforward to consume...

http://code.google.com/apis/buzz/documentation/#syndication

  • Webfinger points to the profile page given a gmail addy
  • Public profile page: example http://www.google.com/profiles/brion.vibber
    • Note: I had to create that manually before it was reachable
    • contains feed link and some info as inline hcard but it's pretty bare by default -- more items can be enabled for public view by the user
      • default settings on creation seems to expose only full name
        • .vcard .fn (if full name is disabled, "nickname" is shown here, defaults to first name?)
      • if photo is enabled it's also findable easily
        • .vcard img.photo
  • Public Atom feed
    • includes rel=hub link for subscription
    • Later: does not include rel=salmon link (but planned for future)
    • Warning: feed includes no feed-level author or profile metadata
    • feed entries include only atom:author:
      • atom:name - full name
      • atom:uri - profile uri
  • Warning: nick is not cleanly exposed in the sense of your google username / gmail account; we could grab the end of the URL which is either google username or some other customized string

Open issues:

  • webfinger path gets the Hcard data but profile-URL path doesn't
  • PuSH delivery seems inconsistent; need more testing?

Tumblr

Example feed: http://evanpro.tumblr.com/

  • No webfinger
  • Public profile page: has an RSS link. Profile data doesn't appear to be marked up as hcard.
  • Public RSS2 feed
    • has a hub link per spec
    • not very clear on authorship info; the rss/channel/link points at the profile page though
      • "Bad feed URL: FeedSubException Can't find enough profile information to make a feed."
    • individual items:
      • title: plaintext
      • description: encoded HTML content
      • link & guid: URL to source post

Probably not very hard to consume, but we'd need to add consumption of RSS2 feeds for Activity and friends. This is a fairly straightforward transformation from RSS2+Atom to Atom+ActivityStreams.

May need to fetch more profile info explicitly.

LiveJournal

Example: http://brionv.livejournal.com/

  • No webfinger
  • Profile page
    • standard refs to RSS2 and Atom feeds
    • no hcard info
  • Public Atom feed
    • has a hub link per spec
    • feed has global <author> with only <name> and nickname, no per-entry author info
      • "No author ID URI found"
    • feed has a rel=alternate link back to profile page
    • entries use non-URL urn: URIs as ids
    • entries have alternate/text/html links to individual posts
    • entries have <title> for title and <content type="html> for post contents

Wordpress

PuSH plugin now enabled on wordpress.com blogs.

Sample: http://briontest.wordpress.com/

  • "Profile" pages... global
  • Profile pages: per author
  • Public RSS2 feed
    • PuSH hub marked per spec (where plugin enabled)
    • rss/channel-level <link> to the main or author page
    • each rss/channel/item has a:
      • title
      • link/guid to the post (explicitly not guaranteed permanent)
      • <description> with short extract
      • <content:encoded> with full HTML
      • <media:content> for enclosures...?
      • author info per item:
        • dc:creator with local username -- no links!

Probably easiest to consider a whole site as an author (though individual author feeds can be pulled too).

Reply considerations?

  • future salmon support is intended...
    • when we've got a reply-to for a particular item, we should be able to salmon-ping it. Not 100% sure how comments will be addressed to an item though?

Blogspot

Sample: http://briontest.blogspot.com/

This actually works insofar as you can set up a PuSH subscription, and it comes through as an OStatus profile and receives updates.

However... We end up with a bad profile:

  • Profile is for the author, but feed is for the blog
    • subbing to another blog by the same author gets you "already subscribed to this user"
  • nickname is a giant ugly user ID number from the profile URL
    • eg "12932299467049762017"
    • a name does get carried over though... 'brion' on my sample blog

Drupal

Modules:

Other:

Elgg

Sample: https://n-1.artelibredigital.net/mod/riverdashboard/

Sample Atom Feed: https://n-1.artelibredigital.net/mod/riverdashboard/?view=activitystream

Sample sindicator site: http://hub.lorea.cc

At the moment groups, profiles or whole network activity can be published over pubsubhub/activity streams. Development under way to have salmon for comments (already working in testing), and group support, as well as reasonable support for most elgg types (at the moment events, groups, blogposts and bookmarks, as well as pure activity -the elgg river-).

The support is implemented in a number of different plugins, and is still not completely stand alone (requires some modifications to elgg).

The plugins code can be found at:

This is still experimental and untested with external services. We hope soon will be acceptable quality for general use.

Also, the lorea_production version of elgg has all the "production ready" features enabled and is the best way to test at the moment since it comes with all the plugins. http://bitbucket.org/rhizomatik/lorea_production. Some networks actively supporting the federation plugins: https://n-1.cc, http://redesenred.net, http://red.artelibredigital.net

direct questions about elgg ostatus support can be directed to devel@lorea.cc, or to the ostatus ml.


MiniMe Microblogger

Example installation in http://lobstermonster.org/

Host-Meta - http://lobstermonster.org/.well-known/host-meta

<?xml version="1.0" encoding="UTF-8"?>
<XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0" xmlns:hm="http://host-meta.net/xrd/1.0">
  <hm:Host>lobstermonster.org</hm:Host>
  <Link rel="lrdd" template="http://www.lobstermonster.org/lrdd?uri={uri}">
    <Title>Resource Descriptor</Title>
  </Link>
</XRD>

LRDD - http://www.lobstermonster.org/lrdd?uri=acct%3Akoski%40lobstermonster.org

<?xml version="1.0" encoding="UTF-8"?>
<XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0">
  <Subject>Tuomas Koski</Subject>
  <Alias>http://www.lobstermonster.org/profile/koski</Alias>
  <Link rel="http://schemas.google.com/g/2010#updates-from" href="http://www.lobstermonster.org/atom/koski" type="application/atom+xml"/>
  <Link rel="http://salmon-protocol.org/ns/salmon-replies" href="http://www.lobstermonster.org/salmon/koski"/>
  <Link rel="magic-public-key" href="data:application/magic-public-key,RSA.quCNBj3KbWmJG1huVxTvHWjCenThHYSb49y7HLPz_fVUfTUYMVfz7Qt8IkTXKj9TartEhNG2FzTIZzu4mkSzkKDZ9NflWs2VIJCWZoF-xJY4FAGKvja-Tuxn-K2trjKa6bypIEfM4qYWVHr_Sxfx3r4fioAe2z90p3AKF6aWm10=.AQAB"/>
</XRD>

Profile page - http://www.lobstermonster.org/profile/koski

Atom page - http://www.lobstermonster.org/atom/koski

Salmon page - http://www.lobstermonster.org/salmon/koski


Project Danube

Website http://projectdanube.org/ (also known as "Project Nori" or "Personal Data Store")

Personal tools
Namespaces
Variants
Actions
Navigation
Status.net
Toolbox