【问题标题】:Facebook android sdk 3.0 SSOFacebook 安卓 sdk 3.0 SSO
【发布时间】:2012-10-15 19:37:28
【问题描述】:

在以前版本的 Facebook SDK 中,我们可以使用令牌检查用户是否仍然登录。在新的 3.0 版本中,除了调用openSession() 来检查用户是否仍然使用SSO 登录之外,我找不到其他方法。但是openSession() 会自动调用登录,如果用户没有保存并且我不希望这样。我只想检查 SSO。我该怎么做?

【问题讨论】:

  • 我也需要这个。找不到。什么鬼?
  • 一旦你创建了一个Session,你可以通过调用session.getState来查看Session对象的状态,如果状态是CREATED_TOKEN_LOADED状态,则说明有已保存且有效的token,你可以直接调用 open() 无需任何用户交互。
  • 或者,您可以调用 Session.openActiveSession(Context context),根据 javadocs,它只会在不需要用户交互的情况下打开会话。
  • 在什么场景下你会使用 openActiveSessionFromCache

标签: android facebook single-sign-on facebook-android-sdk


【解决方案1】:

我创建了一个辅助函数来检查用户是否在我的应用中仍然为我登录(或实际上有一个活动会话):

public static boolean isActive() {
    Session session = Session.getActiveSession();
    if (session == null) {
        return false;
    }
    return session.isOpened();
}

【讨论】:

  • 这对我不起作用,我在会话中不断收到“{Session state:CLOSED, token:{AccessToken token:ACCESS_TOKEN_REMOVED permissions:[]}, appId:234242323423434}”
  • 我可以看到有些人对此有疑问。首先确保您的密钥在 FB 应用程序中是正确的。我记得对此有一些问题。我目前对我有用的流程是 1. 检查 isActive();不? 2. 调用 openSession() 3. if error & session!=null ->session.closeAndClearTokenInformation();
  • 在什么场景下你会使用 openActiveSessionFromCache
  • 我使用的是 3.23.0 版本。 Session.getActiveSession() 在我签入初始屏幕时始终返回 null,尽管用户之前已登录。
【解决方案2】:

或者,您可以调用 Session.openActiveSession(Context context),根据 javadocs,它只会在不需要用户交互的情况下打开会话。 ——李明

【讨论】:

    猜你喜欢
    • 2012-12-03
    • 1970-01-01
    • 2013-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多