Android Facebook注销无效

时间:2013-02-02 06:52:47

标签: android facebook logout facebook-android-sdk

现在我正在使用android Facebook集成。但注销无法正常工作。无法从我的浏览器退出手机我无法从我的应用程序退出。为什么会发生这种情况?。我们如何避免这种情况

1 个答案:

答案 0 :(得分:0)

这里有两个独立的事情:
 1)您的用户是否已通过Facebook和具有权限的应用程序进行身份验证 2)您的用户是否登录到Facebook。

首次使用您的应用时需要进行身份验证,并且持续到用户明确取消身份验证为止(例如,通过Facebook网络帐户设置 - >应用程序 - >应用程序设置)。

每次用户启动应用时都可能需要登录。但是,如果您使用默认的SDK authorize(),它会尝试执行单点登录(SSO),如果Facebook应用程序已登录,您的应用程序将自动登录并使用现有的访问令牌。

如果您正在使用SSO,当您进行注销时,这没有任何效果,因为真正的注销必须注销Facebook应用 - 用户可能不喜欢!

您可以通过对表单进行授权来解决此问题

authorize(this, PERMISSIONS, FORCE_DIALOG_AUTH, new LoginDialogListener());

避免SSO并强制对话登录。当然,这会强制您的用户每次启动您的应用程序时都会登录 - 除非您保存登录详细信息/访问令牌 封面(这是SDK的作用 - 检查来源)。

<强>编辑:

 m_facebook.authorize(FacebookActivity.this, PERMISSIONS, Facebook.FORCE_DIALOG_AUTH,
            new LoginDialogListener());

 class LoginDialogListener implements DialogListener
{
    public void onComplete(Bundle p_values)
    {
        saveCredentials(m_facebook);
        if (m_messageToPost != null)
        {
            postToWall(m_messageToPost);
        }
    }       
    public void onFacebookError(FacebookError p_error)
    {
        finish();
    }       
    public void onError(DialogError p_error)
    {
        finish();
    }       
    public void onCancel()
    {
        finish();
    }
}