Android Facebook SDK 记住 session

标签 android facebook facebook-login facebook-android-sdk

我正在编写一个需要 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/

相关文章:

javascript - 部署到 Heroku 时,是什么导致 Facebook PHP SDK 出现 "illegal character in input string"异常?

facebook - 你如何在 Facebook 页面上发布到墙上(不是个人资料)

java - Android 方向更改导致应用程序崩溃

android - Camera2Basic 应用程序前置摄像头将照片颠倒

java - facebook 登录后,facebook android 通话功能无法使用

ios - PFFacebookUtils.logInInBackgroundWithReadPermissions 无法识别的选择器发送到实例

facebook-graph-api - Identity Server 3 Facebook 登录 获取电子邮件

ios - iOS 上的 Facebook 登录会打开错误的应用程序

android - 图像未显示在 UI 中

Android Studio - SoundPool - 手指从ImageView拿开后停止声音