私はアンドロイドでFacebookのアプリケーションを作成しようとしていて、アンドロイドfacebook-sdk
を使用しています。私は理解しようとしている 例は、このいずれかになります。 https://github.com/facebook/facebook-android-sdk/tree/master/examples/streamandroid facebook application
uはそれは素晴らしいことだ少し私を助けることができれば、私はここで理解していない何かがあります。私は理解していないことは仕方このSession.restore(this)
作品です
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");
}
}
:メインActivity
の中でいくつかの点で
のような何かをやっています。
restore
方法は次のようになります。
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;
}
誰かがそこに保存されているものSharedPreferences
の全体の目的は、あるものを私に説明することができ、なぜ必要なこれらの2行ある場合:
fb.setAccessToken(prefs.getString(TOKEN, null));
fb.setAccessExpires(prefs.getLong(EXPIRES, 0));
私はallowを押すと、セッションを復元するために使用するTOKENをSharedPreferencesに保存しますか?また、UIDとNAMEは誰ですか? – adrian
あなたがセッションが有効であることを保証するために 'restore()'メソッドが呼び出されるたびに、あなたがあなたのトークンを 'SharedPreferences'に保存します。 'UID'と' NAME'はユーザーのFacebookのIdとFacebookの名前です。 –