Android Facebook SDK 4.5.0 登录-注销问题无效 key 哈希错误,同时尝试再次登录

标签 android facebook authentication

我按照 https://developers.facebook.com/docs/facebook-login/android 中的描述实现了 Facebook 登录按钮。具有配置文件和电子邮件读取权限的开发人员指南。

当我按下登录按钮时,Facebook 应用程序打开,然后我可以登录并可以从 Facebook 获取用户数据。此后,Facebook 按钮自动变为注销按钮。当它被按下时,它会注销。到目前为止,它运作良好。

在我的应用程序端完成 Facebook 注销后,想要使用 Facebook 按钮重新登录,Facebook 因 key 散列错误而失败。如果我转到 Facebook 应用程序中的帐户设置,并从列表中删除我的应用程序,然后重新登录返回成功。

我也试过这里的解决方案Android Facebook app logout issue但它也没有用。 为清楚起见,我使用此代码(在 AccessTokenCache 类中找到共享首选项名称):

   SharedPreferences fbSharedPreferences = this.getSharedPreferences("com.facebook.AccessTokenManager.SharedPreferences", 0);
   if (fbSharedPreferences != null) {
       fbSharedPreferences.edit().clear().commit();
   }

我使用的是 Facebook SDK 4.5。我正在使用真实的 Facebook 帐户进行测试。我的应用 key 和哈希是在 Facebook 应用设置中设置的。

附言问题标题受 Facebook Login-Logout Issue Invalid Key Hash Error, While Trying to Login Again 影响(没有解决方案)。

最佳答案

我遇到了同样的问题,您需要从 facebook 应用程序中删除应用程序,然后注销。以下功能将起到作用。

public void disconnectFromFacebook() {

    if (AccessToken.getCurrentAccessToken() == null) {
        return; // already logged out
    }

    new GraphRequest(AccessToken.getCurrentAccessToken(), "/me/permissions/", null, HttpMethod.DELETE, new GraphRequest
            .Callback() {
        @Override
        public void onCompleted(GraphResponse graphResponse) {

            LoginManager.getInstance().logOut();

        }
    }).executeAsync();
}

关于Android Facebook SDK 4.5.0 登录-注销问题无效 key 哈希错误,同时尝试再次登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33023499/

相关文章:

java - 还有其他更好的方法来获取和比较数据库凭证与java吗?

android - 使用 FileWriter 在开始时写入文本

android - 如何在 ConstraintLayout 中 wrap_content 或 "fill available space"

android - 单击按钮时应用程序崩溃

facebook - 发送到信使不显示

.net - WCF 服务 - 使用用户名身份验证的证书和消息安全

java - Android Gradle错误不支持的ClassVersionError

facebook - 在 Facebook 移动应用程序上填写消息框

javascript - 如何在点击时使用 FB Like 按钮 Conceal iframe?

java - 如果用户已经在 J​​ava 中进行了身份验证,请在 Angular 屏幕上保持用户登录状态?