1

我正在编写一个需要 facebook 登录的应用程序。我可以让用户在他/她第一次打开应用程序时登录。但是,他们重新启动应用程序后,我无法检索会话。我的登录代码如下:

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 帐户信息。

4

1 回答 1

4

您可以调用 Session.openActiveSessionFromCache 仅当存在缓存的访问令牌时才会打开活动会话,否则返回 null 。

于 2013-07-18T20:10:55.043 回答