POSSE to Facebook

From IndieWeb

POSSE to Facebook is the act of syndicating (at least some of) your content from your own site to Facebook.

Why

The reasons to POSSE to Facebook are the same for any other silo destination, staying in touch with your friends:

  • If you have friends who read and follow your activities using Facebook, then POSSEing to Facebook provides a way for you to own your content on your own site, while still staying in touch with those friends by providing them a copy.
  • If you participate in a group (especially if "private" or "secret") on Facebook, POSSEing to that Facebook group allows you to continue interacting with it.

Not a good reason:

  • Spam another network.

How

There are multiple ways to POSSE posts to your Facebook profile.

Using a CMS:
(this subsection is a stub and needs expansion / real world examples)

Existing automatable techniques (things you can setup or write code to do for you):

Limitations of automation:

Manual POSSE:


Expanded below with examples:

Via Twitter

As of 2018-08-01 The Twitter to Facebook bridge has also been shutdown (same time as their API shutdown).

Previous examples:

Tantek via Twitter

Until 2018-08-01: Tantek Çelik POSSEs notes, articles by name + permalink, replies (including RSVPs) out from tantek.com to Twitter, and then used to use the Twitter/FB integration functionality to cascade (except for plain replies) POSSEing from Twitter to Facebook by default (sometimes FB copies of tweets are manually hidden from timeline). Reasons:

  • insufficient marginal utility (typically) in writing a custom POSSE syndicator to FB.
    • Correct to not invest time coding this, would have been disabled by FB on 2018-08-01 anyway.
  • FB just gets abbreviated summaries (thus placing more value on tantek.com original posts).
  • FB usually shows a decent link-preview for the first link in from the tweet POSSE copy.
  • Exception: In 2014 Tantek started occasionally manually using Bridgy Publish to POSSE a few longer and more significant posts (notes and articles) directly from tantek.com to Facebook.

Tom Morris

tommorris POSSEs out from tommorris.org to Twitter, and then uses the Twitter/FB integration functionality to cascade that POSSEing from Twitter to Facebook, because he's lazy.

Using IFTTT

Jeremy Keith

Jeremy Keith POSSEs notes, photos, articles out from adactio.com to Facebook using If This Then That (IFTTT).


Bridgy Publish

No longer supported.

email from Facebook to snarfed that his API apps have been disabled
email from Facebook to snarfed that his API apps have been disabled

Using Bridgy Publish to Facebook, you can manually or automatically with your site POSSE directly from your site to Facebook.

See http://brid.gy/ for details on how to setup Bridgy Publish.

Tantek via Bridgy

Tantek used to use Bridgy to automatically POSSE photo posts to Facebook (since 2015). On some notes (multiple paragraphs longer than a tweet), Tantek Çelik manually uses Bridgy Publish (via its web UI) to POSSE a few of his original posts to Facebook, and then manually updates his post storage to link with u-syndication from his original to the FB POSSE copy, since 2014-08-01:

Notenoughneon via Bridgy

Emma Kuo used to use Bridgy to automatically POSSE some posts (using a checkbox in the Neonblog UI to enable it at posting time) to Facebook since 2014-08-01. The original is automatically updated with a u-syndication link.

Barnaby Walters via Bridgy

Barnaby Walters used to use Bridgy publish as of 2016-03-13 to automatically POSSE posts to Facebook. POSSE to facebook can be disabled by tagging the note with “nofb” (for twitter it’s “notwitter”).

  • Previously: was using Twitter’s automatic posting to Facebook. Stopped because Bridgy backfeed doesn’t follow the t.co’s original post link, preventing interactions from facebook from being backfed to my own site.

Facebook API

Posting to one's wall used to be supported with the Facebook 'Graph API'.

Programming language libraries for doing so:

See also:

  • 2013-08-01 OAuth of Fealty / "Resignation beyond sorrow on the Facebook Platform and beyond"


See Original

Some indieweb sites used to POSSE to FB and put in a "See Original" link in POSSE copies of posts there that link back to the original indieweb post! In addition, Bridgy looks for such "See Original" links as part of its original-post-discovery implementation.

Each Facebook post can include one custom "action" with any title and link. The parameter "actions" is a JSON-encoded map that contains a "name" entry ("See Original" in this case) and a "link" entry. Note: Bridgy currently only looks for custom actions named "See Original" (case-insensitive) when doing original-post-discovery.

On Facebook

Warning against using See Original

  • Based on problems we've had with Bridgy Publish, I (Kylewm.com) am starting to suspect that this use case is somewhere between unsupported and an unintentional bug in Facebook, which only seems to work for the app developer's account and may be shut down in the future. Facebook expects custom actions to be registered by your app, and custom Action Links to point to a common endpoint on the application's domain.
  • More evidence that this is unsupported. Facebook's API breaks action URLs that start with a number (e.g. a year) -- it thinks the number is a user ID and changes it to an app-scoped ID https://github.com/snarfed/bridgy/issues/368. This breaks Bridgy's (and any other app's) ability to do original-post-discovery based on "See Original" links.


PHP Example

Normally, a Facebook POST looks like this:

        $response = $facebook->api('/me/feed', 'POST', array(
          'message' => $_POST['text']
        ));

If you add the "actions" parameter, the request looks like this:

        $response = $facebook->api('/me/feed', 'POST', array(
          'message' => $_POST['text'],
          'actions' => array(
            'name' => 'See Original',
            'link' => $url
          )
        ));

(This is just a rough bit of sample code, of course you'll have to replace the $_POST['text'] and $url parts appropriately for your website.)


Mention Tagging

It does not appear to be possible to mention tag someone "inline" (like @-mentions on twitter) using the normal /me/feed API edge.

  • Below I tried to mention a user in a post and it was ignored:

There are a few (less than perfect) alternatives:

  • The only way to mention tag someone via the API is to use Actions and Objects. You do not have to create a custom action -- for sharing a blog post, action=news.publishes and object=article works. This requires that you embed OpenGraph metadata on your post permalink pages. To publish, send a POST to the /me/news.publishes edge and include the field article=http://example.com/your_post.
    • Your app must be manually approved (by FB staff) for "User Tagging" and "User Messages" for that specific action before you will be allowed to tag anyone but yourself.
    • Facebook has started showing "auto-posted" stories less and less[1]. Not clear how much this affects POSSE, but I would guess this means we should steer clear of the Actions/Objects API.
  • You can person tag a post so that it shows up "— with [some people]" with the /me/feed edge. Add user IDs (user's app-scoped numeric ID or you can get a mention token from /me/taggable_friends.) to the tags field. It used to be that you had to include a place (the ID of a Facebook Place), and the docs still indicate that this is the case, but experimentally, it seems to now work without a place. Note: your app needs to be approved for user_friends and to get manual approval for Taggable Friends.


Liking

Bridgy used to use the Facebook API to implement POSSEing of likes from an original like post to your Facebook account. However, the 2.x Facebook API doesn't allow POSSEing comments or likes (or PESOS either).

To publish a "like" via the 1.0 API, find the Facebook object ID and post to its "likes" collection. The app will need to request the "publish_actions" permission in order to publish likes.

As of 2014-??-??, your site/code must go through a review process in order for your Facebook app to request the "publish_actions" permission for other users.

Aaron Parecki has noticed that Facebook is strongly pushing the JS SDK over making direct API calls. Using the JS SDK has some advantages such as it manages the login dialog and refreshing access tokens. If you use the API directly, your app will be responsible for refreshing the Facebook access tokens when they expire, and tokens can be as short-lived as 1 hour.


API disallows liking pages

Per https://github.com/snarfed/bridgy/issues/349 the Facebook API 2.x as of 2015-023 does not allow liking pages.

Thus to POSSE a "like" post of a Facebook page, you must do so manually.

Posting Photos via the Facebook API

There are generally two ways to POSSE an image to Facebook, roughly corresponding to photo vs. featured.

Bizarrely, the Graph API reference claims you cannot post photos via the API, but this is experimentally wrong and contradicted elsewhere in the documentation.

To post a photo, send a POST to the /me/photos edge, with the "url" parameter set to the public URL of the photo. Here is an example of a photo post:

To post a link to the original post with a featured image, send a POST to /me/feed with the "link" parameter set to the original's URL. You can either specify the featured image using OGP <link> metadata, or you can explicitly set the "picture" parameter to the featured image URL. Here is an example of a link+picture post:


IndieWeb Examples

In rough order of implementation:

Ben Werdmuller

Ben Werdmüller uses idno on werd.io to post POSSE copies to Facebook since 2013-05-31. Example:

Screenshot of original on werd.io and POSSE copy:

Kyle Mahan

Kyle Mahan uses Red Wind on kylewm.com to post POSSE copies to Facebook since 2014-02-18. Examples:

Aaron Parecki

Aaron Parecki uses p3k on aaronparecki.com to post POSSE copies to Facebook since 2014-02-20. On 2014-03-08 he started putting a see "See Original" link on POSSE Facebook copies.

Jeena Paradies

Jeena Paradies uses a simple rails app on jeena.net to post POSSE copies to Facebook since at least 2014-02-20

Brainstorming

How we got here

Below are previous experimental examples of syndicating notes to Facebook.

These examples were created with the Facebook Publishing API using either the "message" or "link" parameter or both.

Note with inline citation link

Sent using only the "message" parameter, the citation link is part of the message.

8734721454_2b04aa0a2b_o.png

Note with text and link parameter

Sent using both the "message" and "link" parameters. Facebook includes the note text, and creates an inline preview of the page, which shows the note text and the author's photo.

8734700706_274e6e86ef_o.png

Link parameter only

Sent using only the "link" parameter. Facebook creates an inline preview of the page which shows the note text and the author's photo.

8734697788_42b5407f37_o.png

Note text only

Sending only the note text and does not include the citation link. This is not recommended.

8733602329_12252ef6c3_o.png

See Also