Drupal for Facebook - The Next Release

Modules/fb has a long (sometimes arduous) history. Integrating Drupal with Facebook's platform basically since the platform became available. Back then, all Facebook apps were what we now call "canvas pages"; Facebook Connect did not exist. Canvas pages were written in FBML, whereas now they are iframes. Facebook has completely changed their PHP and Javascript SDKs, and introduced the "Open Graph". In short, these modules have changed a lot over the last couple years. Almost every feature has been reimplemented once or twice. As with most software projects as they get older, it's tempting to do a complete rewrite. Doing so would clean out the obsolete bits of code that are no longer used, or no longer best practice (or no longer working at all). Here are some thoughts about what this rewrite-from-scratch might look like.
  • No Dependency on PHP SDK -- Fortunately Facebook's platform has evolved to be based entirely on internet standards. Most interaction is based on JSON over HTTP. Drupal already has helper functions for these protocols, which modules/fb can use instead of what facebook provides. Frankly I expect Drupal's code to be more reliable, better implemented and supported. Plus the modules would be self-contained, not requiring an extra download as part of the install process.
  • Less Canvas Page Code -- Initially, app were all canvas page, and canvas pages were difficult to support. These days, they are iframes, which makes them basically a regular web page. They are not restricted to just 760px. Drupal already does a good job serving them up. It might be possible to eliminate fb_canvas.module entirely.
  • Less Application Configuration -- Once upon a time, modules/fb could create an app for you. You never had to visit facebook.com, cut and paste IDs and SECRETs etc. That's no longer possible, and facebook has a bunch of properties associated with apps that Drupal cannot modify. In short, you basically have to visit facebook.com to configure your app. And the tools provided by facebook are much better than they used to be. So, modules/fb should work well with apps that are not configured via Drupal. There are some features, like posting to facebook, which do not even require that an application is hosted on Drupal.
  • Token Management -- These days, interaction to the facebook platform is all about tokens. There's a token for each user (or page) that uses an app. These tokens make features possible, even if Drupal is not configured with an application secret. So, as features become more dependent on tokens, modules/fb has to provide a clean and easy way to manage lots of tokens.
These are changes I have in mind for a next release (modules/fb 4.x). The goal being a cleaner, smaller set of code. Not supporting all the same features, its worth noting. I think its best to do away with the parts that may no longer be needed, don't work optimally and and hard to support. Even if doing so will lead to some headaches for users upgrading from the current version. That is, after all, the Drupal Way.
Mohamed Al Arabi's picture

Have got the weirdest problem on D7 DFF, comment forms redirect to blank pages!
Mohamed Al Arabi's picture

is that significant?
Mohamed Al Arabi's picture

using a debugger while posting this comment. Disregard.