I’m trying to create on android a facebook application and I’m using android facebook-sdk .
The example that I’m trying to understand is this one:
https://github.com/facebook/facebook-android-sdk/tree/master/examples/stream
There is something that I don’t understand in here if u could help me out a little bit it would be great.
At some point in the main Activity is doing something like:
Dispatcher dispatcher = new Dispatcher(this);
dispatcher.addHandler("login", LoginHandler.class);
dispatcher.addHandler("stream", StreamHandler.class);
dispatcher.addHandler("logout", LogoutHandler.class);
Session session = Session.restore(this);
if (session != null) {
dispatcher.runHandler("stream");
} else {
dispatcher.runHandler("login");
}
}
What I don’t understand is the way this Session.restore(this) works.
The restore method looks like this:
public static Session restore(Context context) {
if (singleton != null) {
if (singleton.getFb().isSessionValid()) {
return singleton;
} else {
return null;
}
}
SharedPreferences prefs =
context.getSharedPreferences(KEY, Context.MODE_PRIVATE);
String appId = prefs.getString(APP_ID, null);
if (appId == null) {
return null;
}
Facebook fb = new Facebook(appId);
fb.setAccessToken(prefs.getString(TOKEN, null));
fb.setAccessExpires(prefs.getLong(EXPIRES, 0));
String uid = prefs.getString(UID, null);
String name = prefs.getString(NAME, null);
if (!fb.isSessionValid() || uid == null || name == null) {
return null;
}
Session session = new Session(fb, uid, name);
singleton = session;
return session;
}
If someone could explain me what is the whole purpose of SharedPreferences, what is stored there and why are these 2 lines needed :
fb.setAccessToken(prefs.getString(TOKEN, null));
fb.setAccessExpires(prefs.getLong(EXPIRES, 0));
When you access any
. If the user press
facebookuser information or any other action which requirespermissionto be accessed as shown below.Allowbutton then ATokenis inserted in their Database with theuser Id,your App Idand thevalidation time(which may be unlimited) as well as theActionsyou may perform (e.g Access Info, Send Email, Access Posts, Post to Wall etc.), that specificTokenis returned to you and you save thatTokento access the info and other action which are permitted against that token.Whenever you make a request for any action they match that token, check validation and then see if that action is allowed by the user, if allowed you are granted to complete the action.