I have integrated the Facebook SDK 3.6 in Android and I use a FQL query to fetch user data.
Following is the query I use:
if(isNetworkConnected() == true){
//Init the LoaderDialog
Asycdialog.setMessage("This might take a while and depends on the speed of your internet connection");
Asycdialog.getWindow().setGravity(Gravity.CENTER_VERTICAL);
Asycdialog.getWindow().setGravity(Gravity.CENTER_HORIZONTAL);
Asycdialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
Asycdialog.setCancelable(false);
//Dialog Show
Asycdialog.show();
File dir =new
String fqlQuery = "{" +
"'friends':'SELECT uid2 FROM friend WHERE uid1 = me()'," +
"'friendinfo':'SELECT uid, name, birthday FROM user WHERE uid IN" +
"(SELECT uid2 FROM #friends) AND birthday'"+
"}";
Bundle params = new Bundle();
params.putString("q", fqlQuery);
Session session = Session.getActiveSession();
Request request = new Request(session,
"/fql",
params,
HttpMethod.GET,
new Request.Callback(){
public void onCompleted(Response response) {
//new Async().execute(response);
new Async().execute(response);
}
});
Request.executeBatchAsync(request);
}else{
Toast.makeText(getActivity(), "Please check and turn on your internet connection", Toast.LENGTH_LONG).show();
}
The query works exactly as intended and I get all the requested parameters.
However according to the documentation:
Changes from v1.0 to v2.0 App-scoped User IDs: To better protect people's information, when people log into a version of your app that has been upgraded to use Graph API v2.0, Facebook will now issue an app-scoped ID rather than that person's orginal ID. However, for users that have previously logged into your app, the user ID will not change.
App Friends: The /me/friends endpoint no longer includes the full list of a person's friends. Instead, it now returns the list of that person's friends who are also using your app. All requests to Graph API v2.0 require an access token, except for /{id}/picture. The format of the /me/permissions endpoint has changed. It now includes a list of permissions and a status field denoting if they were granted or declined. Link to docs
Although there is no mention of iOS or Android SDK being impacted by this, what are the measures I would have to take into consideration so that my application does not break. I am looking for answers from Authentic sources and I request the same sources to please make this documentation a bit better, come-on FB YOU can do it?
Have a look at https://developers.facebook.com/docs/apps/upgrading/#upgrading_v2_0_versions_and_path which states that
You can choose which version of the API you want to use by:
- ...
- Integrating the Facebook SDKs for iOS or Android, which are set up to call the latest version of the API that was available on the day the SDK was released.
- For people making manual calls to our API without an SDK, the version is picked by putting the version in the path when you make an API call (such as graph.facebook.com/v2.0/me).