POSSE to Facebook
POSSE to Facebook is the act of syndicating (at least some of) your content from your own site to Facebook.
- 1 Why
- 2 How
- 3 Via Twitter
- 4 Using IFTTT
- 5 Bridgy Publish
- 6 Facebook API
- 7 Brainstorming
- 8 How we got here
- 9 See Also
- 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.
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:
Expanded below with examples:
Tantek via Twitter
Tantek Çelik POSSEs notes, articles by name + permalink, replies (including RSVPs) out from tantek.com to Twitter, and then uses the Twitter/FB integration functionality to cascade (except for plain replies) that 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.
- 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.
- Working on adding to Falcon: Automatic Bridgy POSSE to FB
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 uses 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:
- original: http://tantek.com/2014/210/t1/trackattack-warmup-laps-first-time-did-all
- Manual FB POSSE days later: https://fb.com/tantek.celik/posts/10101200515439233
- Manual FB POSSE same day: https://fb.com/tantek.celik/posts/10101208095508713
Notenoughneon via Bridgy
Emma Kuo uses 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.
- original: http://notenoughneon.com/2014/8/1/1
Barnaby Walters via Bridgy
Barnaby Walters uses 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.
Posting to one's wall is supported with the Facebook 'Graph API'.
Programming language libraries for doing so:
- Ruby: fb_graph - see the feed! method and Koala: Graph API
- PHP: https://developers.facebook.com/docs/reference/php/ and Graph API - demo class also available for download.
- 2013-08-01 OAuth of Fealty / "Resignation beyond sorrow on the Facebook Platform and beyond"
Some indieweb sites 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.
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.
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
$url parts appropriately for your website.)
It does not appear to be possible to mention tag someone "inline" (like @-mentions on twitter) using the normal /me/feed API edge.
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=
articleworks. 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
- 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. 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
tagsfield. 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_friendsand to get manual approval for Taggable Friends.
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.
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
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:
In rough order of implementation:
- Original: http://werd.io/2014/i-like-my-coffee-yak-like-my-soul
- Facebook copy: https://facebook.com/36802236_10100784559882869
Screenshot of original on werd.io and POSSE copy:
- Facebook copy: https://www.facebook.com/kyle.mahan/posts/10100845623360929
- Original: http://kylewm.com/note/2014/04/05/2 (currently showing almost palindromically duplicate facebook likes)
- Facebook copy: https://www.facebook.com/aaronpk/posts/10101380795292076
Jeena Paradies uses a simple rails app on jeena.net to post POSSE copies to Facebook since at least 2014-02-20
- Facebook copy: https://www.facebook.com/jeenaparadies/posts/10152606923252678
- Note "See Original: ..." link inline in Facebook POSSE copy content.
- Original: https://jeena.net/notes/97
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.
Sent using only the "message" parameter, the citation link is part of the message.
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.
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.
Note text only
Sending only the note text and does not include the citation link. This is not recommended.