On May 1st, Facebook made a sweeping change to their programming interface. While there are many positives in this update, like longer-term stability, there were many surprises and changes that will affect your Joomla websites. If you're using JFBConnect for Joomla social network integration, you don't need to know the low-level details, but you should be aware of the bigger picture of how each change may impact you. We've broken them down into the standard good, bad, and ugly categories below to make things easier to digest.
To get a full picture of the changes, the below section is a quick history of the Facebook API. Feel free to skip if you're not interested in a little more of what we deal with on a day to day basis to bring you the best social network integration for Joomla.
At SourceCoast, we've been creating products around Facebook's API (Application Programming Interface) since 2008. Back then, there wasn't much of a coherent interface. It was simply a few minor things you could call and, if you were lucky, and they worked as documented, they would work.
At first, when you had code that worked fine for months, one day, it would just stop working for no discernible reason. Things like requesting a user's "identifier" previously may have returned their email address but then would start returning their numeric ID. I'm sure inside FB HQ there were obvious reasons for these changes, but on the outside, they were maddening as there was no warning and (many times) were not documented until after the fact.
In 2011 or 2012, Facebook added 'Migration' settings to all Applications. These migrations were a 90-day notice to all developers that a feature would change in the future. With a simple setting, you could toggle your app to use the 'old way' or the 'new way'. This allowed for a decent transition path from old functionality to new and stabilized the interface greatly. Flowers bloomed, birds sang, life was good.
Migrations were great at first, but quickly became tedious to manage. There may be 10 different migration settings with obscure names and little details. For software like JFBConnect, we built our Autotune (automatic configuration tool) to manage migrations for our users. Since our Joomla extension works on thousands of websites and Facebook Applications, we needed to make sure our users were using the proper migration settings for their Application and their version of JFBConnect. Instead of having some massive table in our documentation of JFBConnect versions and the correct migration settings for that version, our tool automatically set them for you. That ensured they were correct and meant our users didn't need to understand all the different settings and options.
At this point, Facebook's stated policy was that there was a 90-day breaking change rule. Nothing would change or break without 90-days notice. While great on paper, things rarely ever worked that way. Facebook is changing constantly, which is frankly a good thing. When they thought something was important enough, they simply implemented the change and said 'tough luck, we'll fix that later'. Generally, no fix was ever implemented and the 'new' functionality was here to stay.
The amount of migrations dwindled over time and the API, more or less, reverted to the old west. While things were pretty darn stable, some strange things (like the most maddening change which prevented responsive comments boxes) were thrown in for no discernible reason other than to frustrate. In the responsive comments box case it took more than 2 months to fix it!
On May 1st, at F8 (the Facebook Developer Conference), Facebook introduced the Facebook Graph API v2. Everything we'd used in JFBConnect for Joomla social network integration was immediately called Graph API v1, and anything new was called Graph API v2. This changes promises greater stability, but comes with quite a few gotcha's and hiccups along the way.
Below is a run down of the main high-level changes, categorized how we see fit :)
You! (if you're using JFBConnect). We work hard to stay on top of the changes in each social network. That's why we sent out email notifications about a smaller, but still largely breaking, change in LinkedIn's API in late April to require an OAuth2 callback URL be provided. While the above may be hideously boring, the good news is that you didn't have to read through tons of documentation, comments and bug reports to learn it all. That's our job, and we'll make this transition, just like every other update, as smooth as possible over the coming year.
As always, we'd love your questions, feedback or comments on the changes in the Graph API or the integration with your Joomla site and how it may affect you. We'll here to help however we can!