External Comment Integration

August 4th, 2011
comments, facebook, googleplus, tech
For a long time I've crossposted blog entries to facebook (and now google plus) and have avoided needing to implement commenting by letting those serve as discussion fora. I got kind of annoyed with this making the discussion fragmented and decided to fix this. Unfortunately, there's not an api available for google plus yet. So for now I just settled for pulling comments from the facebook api.

If you're interested in the technical details, I needed a pretty roundabout solution because I have two constraints: (1) I don't want people to have to authenticate with facebook or something to see the comments and (2) I can't run any server side code on my blog host. I ended up going with a simple wsgi app that pulls from facebook's graph api with an oauth token in my name, makes it into html, returns "'document.write(%s);' % json.dumps(html)", which is then included into my document with a script tag where I want the comments to show up. I do need to specify the facebook id of the post, instead of it automatically discovering it, but that's not so bad. I was originally planning to use an iframe, but it turns out that including content with an iframe that acts like part of your page instead of independently scrolling is a really hard problem involving lots of javacript and browser workarounds.

So comment away!

Update 2012-03-24: The code, minus facebook access tokens, is now on github.
Referenced in:

Comment via: google plus, facebook

Recent posts on blogs I like:

Against Lyman Stone On Animal Welfare

Demographer Lyman Stone writes:

via Thing of Things March 21, 2025

Product in the age of AI

We’re seeing AI features pop up in every product we use. Slack, Google Drive, etc.

via Home March 18, 2025

How I've run major projects

focus • maintain a detailed plan for victory • run a fast OODA loop • overcommunicate • break off subprojects • have fun • bonus content: my project management starter kit

via benkuhn.net March 16, 2025

more     (via openring)