So I finally caught on to the fact that Facebook released version 2.0 of their API at the end of April (to coincide with the F8 developer conference.) and will discontinue pre v2.0 API calls in April 2015.
I thought I had better take a look as I support a number of PHP apps that run on Facebook or integrate with Facebook for login/authentication etc.
v2.0 of the Facebook API has been completely rewritten from the fairly basic previous API code that I had been using, there are a lot of changes including new login features and permissions.
‘This is great’, I thought…
Facebook PHP API v2.0 requires PHP v5.4
However there is a problem that will cause a whole lot of people a whole lot of problems. The new PHP SDK for v2.0 of the API requires PHP v5.4.
if (version_compare(PHP_VERSION, '5.4.0', '<')) { throw new Exception('The Facebook SDK v4 requires PHP version 5.4 or higher.'); }
My main production server runs the latest (as of the time of writing) LTS of Ubuntu v12.04, it’s up to date but a quick php -v from the command line reveals
PHP 5.3.10-1ubuntu3.13
The 14.04 LTS is not available to apt until the first point release which I think is any day now. 14.04 LTS will include PHP 5.5, but I’m not really planning on upgrading my live server straight away, 12.04 LTS is supported up to 2018 – that’s what Long Term Support means.
I currently work with live production Ubuntu servers ranging from v8 to 12 that I would not even dream of trying to upgrade.
Bearing in mind that a whole lot of people won’t even be running an Ubuntu version above 12 on their production servers getting to PHP 5.4 is going to present them with a considerable upgrade challenge.
You are going to have to be pretty brave to manually upgrade PHP, and if you do it without proper testing then you are also going to have to be particularly stupid.
Upgrading PHP without testing is going to break applications that are running PHP code that has been deprecated, older versions of Magento spring to mind, not to mention the problem people who are on a virtual or shared hosted systems where they have absolutely no control of the version of PHP running on their server.
Facebook #fail
So it looks like it’s a real #fail from Facebook to implement a PHP SDK totally dependent on a PHP version that a lot of people are not running and possibly cannot run.
What does this mean for your existing Facebook apps?
- For apps that existed before April 30th 2014, making an API call without specifying a version number (‘unversioned’) is equivalent to making a call to the v1.0 of the API.
- For apps created on or after April 30th 2014, making an API call without a specifing a version number is equivalent to making a call to v2.0 of the API.
- Apps that were inactive or have a creation date on or after April 30th, 2014 will not be able to make calls to v1.0 of the API. They must use v2.0.
This means your existing pre April 30th 2014 apps will be allowed to still make pre v2.0 api calls until April 30th 2015 after that they will stop working.
- If you want to create a new Facebook App you have to use the v2.0 API.
- Inactive apps will no longer work. (define inactive please Facebook.)
- if you want to create a new Facebook App you need to upgrade to PHP 5.4 or for Ubuntu admins be running the latest LTS (14.04).
- if you have code on Envato using the old API it will be removed in August 2014 – goodbye to my Magento Facebook storefront!
Man this sucks
I think this really sucks, especially if you are authenticating users via Facebook login if you don’t do anything your users will not be able to login to your website after April 30th 2015. I am kinda glad I didn’t implement that Facebook login feature on our eCommerce site now…
if your eCommerce site is running on shared hosting, or does not support PHP5.4 (i.e. Magento 1.3x) then you are pretty well stuffed I think.
The new API has a learning curve for devs too and I am already coming to this pretty late so I guess I better look at what options I have and what apps are going to stop working next year if I do nothing, or am unable to get my code and server to PHP 5.4 by then.
Having said all this I would bet my bottom dollar that Facebook change these deadlines and extends the v1.0 API support beyond 2015 – watch this space…
Because I am now depressed I am going to include a funny picture to cheer me up.
Christian Münch says:
I can understand Facebook. PHP 5.3 reached End of Life and will get no update anymore. A e-commerce system like Magento must run on a up to date a environment.
Markus says:
I think your post is to simple.
As i see the support of PHP 5.3 ends in July 2014 as well from the PHP people. I don’t know the details where the package maintainer of ubuntu will continue on that.
But PHP has no LTS Version. So if you are a maintainer of any PHP Software, there makes no sense to support something that is outdated.
So the problem is that PHP didn’t get it, other programming language have longer support periods that fit in LTS periods to you operation system.
I m unrelated to Facebook. I m a guy hacking software.