Facebook API v2.1 was released. Apps can use only the API that is the latest version at the time it was created.

8.12
2014

v2.1

Few weeks ago, we were talking about API v2.0. But now, v2.1 has been released.
There is some changes about v2.1 from v2.0, you will be able to find these details on Google search.

Graph API v2.1出ました : Facebook開発者向けドキュメントの日本語訳とTips
http://facebook-docs.oklahome.net/archives/52179589.html

In this article, picked up big changes.

Hereinafter is official changelog docs.

Facebook Platform Changelog
https://developers.facebook.com/docs/apps/changelog

You can now get the number of friends from “friends API”

friend4

Few days ago, I wrote an article “How to get the number or list of friends by Facebook API v2.0.
This was implemented by API v2.1, and was also applied to API v2.0 at the same time.
Hmmm…

The FQL and REST APIs are no longer available in v2.1

In past, we had used the FQL for getting the data from Facebook, and then the REST APIs had been available.
Then, the Graph API was released. It has changed to v2.1 from v1.0.

The FQL and REST APIs had worked until Graph API v2.1 was released.
But facebook did not recommend to use the FQL and REST APIs from long before.
Finally, they don’t work any more.

“Like Gating” function died, Platform Policies was changed

I wrote an article ““Like-gating” for facebook page will die on November 5th 2014.“, few days ago.
This is important, so write here once again.

  1. Platform Policies was changed, you can no longer incentivize users to like a page. (Policy Change)
  2. It has been always “true” that “liked” field in the response from “signed_request”, so “Like Gating” no longer work. (Spec Change)

The change #1 is different from the change #2.
Change #1(Policy change) will be applied at November 5th 2014.
If the app was created before August 7th, change #2(Spec change) will be applied at November 5th 2014.
But if the app was created after August 7th, change #2 will be already applied.

Facebook app can use only the API that is the latest version at the time it was created

Well, let’s see the “versioning” of facebook, again.

Facebook Platform Versioning
https://developers.facebook.com/docs/apps/versions#versioning

As above, after API v2.0, if new version API(This time, v2.1) is released, you can use old version API(This time, v2.0) in two years from the date that new version was released. This is the time for migration.

But this is the case of that the app had been created before the date that new version api was released.

On basis of “The day that new version api was released”, if the app was created before that day you can use either old version or new version.
If it was created after that day, you can use only new version.

versioning

Therefore, facebook apps can use only the API that is the latest version at the time it was created, cannot use the old version.
If further new version API is released after apps had been created, there will be the time for migration for two years.

It’s confusing me, because of there is the description that “if the api version was not called the oldest version would be called” in docs.
But, “the oldest version” means “the oldest version of that the app can use”.

And now, HTTP header reply the response what version was called by your app.
I tried this by “Live HTTP headers” extension of Firefox.

api-ver-header

From now, it will be possible to happen that the app created today does not work by the specification that was thinking yesterday, in case of that you create the app each time.
You should create the new facebook app first, before thinking about specification.

For example, if you were planning some specification of App before August 7th and you created that app after August 8th, you will be dead.

I hope that Facebook allow to use the old version API it has nothing to do with the creation date of the application.

In this rule, we should create many apps even if we won’t use.
And, someone can start the new business that sell the stocked app to the app developer that is in trouble over API version change.
Why don’t you?