IndieWebCamp is a 2-day creator camp focused on growing the independent web
IndieWebCamp Events

backfeed

Backfeed is the process of reverse syndicating replies/activity on silos to your POSSE copies of posts back to your original posts.

Contents

Getting Feedback Back

So you've syndicated clones of your posts out to Twitter, Facebook, Flickr, Openphoto, Tumblr, etc. (POSSE)

But what happens when people on those other networks comment/like/otherwise respond?

Types of Response

  • Comments/replies/notes - basic textual commenting
  • Favorites/likes - primitive 'positive feedback' type
  • Mention - A reference to the content that is perhaps not in direct reply to it
    • E.G. a 'share', 'bookmark' (Is this sufficiently different?)
  • RSVP, e.g. on a Facebook event

IndieWeb Implementations

Singpolyma

singpolyma syndicates posts out to Twitter and runs a cronjob that polls the replies/mentions (authenticated) API endpoint to pull in responses. (since ????-??-??)

Ryan Barrett

Ryan uses Bridgy (see below) to backfeed comments, likes, and reposts from the silos to his own site. E.g. see Facebook and Twitter comments here:

Service Implementations

Bridgy

Main article: Bridgy

brid.gy is a service that sends webmentions for comments/replies, likes, and reposts on Facebook, Twitter, Google+, and Instagram posts. It uses original post discovery to find target links for the webmentions. GitHub repo here.

Salmon Unofficial

salmon-unofficial is an older, unmaintained alternative to Bridgy that uses the Salmon protocol instead of webmention. It discovers original source sites via LRDD, WebFinger, and XRD, as specified by Salmon. GitHub repo here.

Server Implementations

WordPress Plugins

Jetpack Publicize is great, but doesn't yet implement backfeed.

Discussion

Do these responses belong on your indie page, at the original source of the content? There are storage, legal, data ownership, UX, and other questions.

  • Yes:
    • Gives people a choice about where to author their replies
    • Enhanced UX (debatable depending on service used)
    • Ease of use, low barrier of entry. Peter Shaw describes this well, notably the value and intuition of replying at the location source post, which is especially compelling for users who are less technical or willing to spend extra time and effort.
    • Meets the majority of users who aren't technical or don't feel strongly where they currently are: in the silos.
    • +1 barnabywalters
    • +1 Ryan
    • ...
  • No:
    • Generic, open systems such as pingback are preferable to backfeed from closed silos (although open response systems are another discussion entirely).
    • Responders didn't choose to publish at the original source. In rare cases, this could cause legal problems.
    • Imposes more overhead.
    • May antagonize silos. They often try to prevent this kind of outward syndication of their data. One example (of many).

Silo APIs

Some APIs have better functionality for this than others:

Twitter

Twitter APIs to use for getting @-replies etc. on Twitter to your Twitter POSSE copies:

  • Search for DOMAIN filter:links with result_type=recent. See example code here (and continued here). Only returns recent results, but otherwise works ok.
  • There's no official way to get replies to a given tweet. If it's not too old, though, you can search for @-mentions of the original tweet's author, then look through the results for any whose in-reply-to field points to the original tweet. See example code here.
  • Otherwise, there's the unreliable, undocumented, unofficial 'related_results' endpoint.

Facebook

Facebook has a lot of APIs.

  • FQL makes this surprisingly easy. For example, here's a query to get all comments on the posts from a given user with links in them:
 SELECT post_fbid, time, fromid, username, object_id, text FROM comment
   WHERE object_id IN (SELECT link_id FROM link WHERE owner = USER_ID)
   ORDER BY time DESC
  • And here's the follow-up query to get the URLs of those links (where LINK_IDS is a comma-separated list of the object_ids from the above query):
 SELECT link_id, url FROM link WHERE link_id IN (LINK_IDS)
  • See example code here. There's also this example code that fetches and processes comments from the posts found by those queries.
  • Also the OBJECT_ID/likes and OBJECT_ID/comments connections
  • API is sometimes slow. Most backfeed solutions will/should poll in offline processes though, so they won't usually block end user requests.
  • Returns extremely unclear failed results for API calls to posts by under-18s
    • This is bloody annoying for us minors. It's more "bothersome" than "protecting" -- barnabywalters
  • How best to represent external users?
    • Facebook URI (not preferable)
    • Can we grab their personal URI from their profile?
    • Detect comments from originating user?

Flickr

Flickr has direct APIs for this:

See Also

  • pingback protocol - currently implemented by most major blogging platforms, i.e. Wordpress, and available as a standalone project to use on non-Wordpress sites
  • salmon protocol
  • Juvia - a commenting system you can install on your own server similar to Disqus and Intense Debate