Last year, Facebook announced a series of changes to their developer platform and launched API v2.0. All Facebook apps have to start using this new API by the end of April 2015. As the big date is drawing near, a lot of questions are beginning to trouble developers.
With over a billion of users, Facebook is the most popular social network today. It has also become the largest open repository of personal user information. This data is publicly available via the Facebook API and we can use it to enhance the user experience of our mobile and web apps.
We can use it for:
- user authentication
- obtaining personal data on our users
- exporting the app data to users' walls
Although the Facebook API is free of charge, we still need to adhere to platform policies. One of these is that the old Facebook API will officially become deprecated and we'll need to switch to the new one.
What are the changes?
There are a lot of important differences between API v1 and API v2:
- FQL is officially deprecated from version v2.1, and can no longer be queried
- support for real time updates for Pages
- installed permission no longer exists
- user IDs are now app-scoped
- Facebook Login has been drastically improved
- optional permissions - users can now decline any permission that your app requests. This is done during login, and the only required permission is public_profile.
The most important changes are connected to the permission management. Every app which asks for more than public_profile, email and user_friends permission needs to be reviewed by Facebook.
The user_friends permission has undergone many changes. You'll no longer be allowed to obtain the friend lists of your users. This permission has been completely refactored and will now return only the list of the user's friends who are using your Facebook app. Also, all friend_* permissions have been removed. This means that it's no longer possible for an app to see data from your user's friends. You can see this data only if those friends have also logged into the app and granted permission for the app to see that data.
Also, a large number of permissions have been completely removed. You can see the full list here.
Do I need to upgrade my apps to API v2?
After the deadline, all Facebook apps will automatically be migrated to API v2. This could potentially create a lot of problems for developers and end users. Facebook officially states that users who will use our apps after April 30th, 2015 risk any of the following problems:
- Crashes due to the unexpected format of an API call response
- Inability to load your game
- Inability to invite friends
- Broken gameplay due to missing permissions not being handled correctly
Also, as several of the most popular API calls and permissions will completely change their responses, you'll need to refactor your app behavior in order to preserve your business model. Maybe you'll need to ask for new permissions or even completely refactor some of your screens and actions. You'll also need to explain to your current users that some features will no longer be available. Be prepared for everything.
OK, now you got me scared. What should I do?
Although you still have a lot of time to implement the necessary migrations, it's better that you start working on them right now. You also need to take into consideration that maybe you'll need to ask for additional permissions from your users. For every new permission, you'll need to go through app review, which usually takes 3-7 business days. But don't take this as a hard fact - in the upcoming two months, a large number of apps will apply for an app review, so the duration of this process could potentially increase to more than a week.
Facebook has already documented all the necessary changes and created a FAQ page especially targeting migration problems:
In conclusion, if you have regularly updated your applications, you'll have no problems with the migration to API v2. Facebook has done a really good job with documenting all new functions, permissions and migration strategies. You can also join the Facebook Developers Community and ask any question you want to further simplify your migration process.
But don't get too used to API v2. It's already deprecated and will only be supported for two more years at most, and will probably be up only until April 30th, 2016.