我正在编写一个需要 facebook 登录的应用程序。我可以让用户在他/她第一次打开应用程序时登录。但是,在他们重新启动应用程序后我无法检索 session 。我的登录代码如下:
private static Session openActiveSession(Activity activity, boolean allowLoginUI, StatusCallback callback, List<String> permissions) {
OpenRequest openRequest = new OpenRequest(activity).setPermissions(permissions).setCallback(callback);
Session session = new Session.Builder(activity).build();
if (SessionState.CREATED_TOKEN_LOADED.equals(session.getState()) || allowLoginUI) {
Session.setActiveSession(session);
session.openForRead(openRequest);
return session;
}
return null;
}
我在应用程序打开时使用 isLoggedIn
方法来了解用户是否登录。
public static boolean isLoggedIn() {
Session session = Session.getActiveSession();
if (session != null && session.isOpened()) {
return true;
} else {
return false;
}
}
但是当应用程序关闭并重新打开时,此方法永远不会返回 true
。
如果他/她过去登录过,我如何不显示弹出窗口来获取用户的 Facebook 帐户信息,从而恢复旧 session 。
最佳答案
您可以调用 Session.openActiveSessionFromCache,只有在存在缓存的访问 token 时才会打开 Activity session ,否则返回 null。
关于Android Facebook SDK 记住 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17688476/