Facebook 哈希键破坏了 Facebook 登录按钮

Facebook hash key breaks the Facebook login button

我最初使用 OpenSSL 来获取我的密钥哈希,但经过大量研究后,我读到,使用一段代码,我可以生成一个更好的方法。这些哈希不同,现在当我使用这段代码提供的哈希键时:

try {
    PackageInfo info = getPackageManager().getPackageInfo("com.myapp.default",
                PackageManager.GET_SIGNATURES);
    for (Signature signature : info.signatures) {
        MessageDigest md = MessageDigest.getInstance("SHA");
        md.update(signature.toByteArray());
        Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
    }
} catch (PackageManager.NameNotFoundException e) {
} 
catch (NoSuchAlgorithmException e) {
}

它破坏了我的 Facebook 登录按钮。我所说的 break 是指当我点击时,似乎什么也没有发生。它显示一个加载图标,但随后什么也没有。当我切换回原始哈希时,它会给我一个错误

Invalid key hash. The key hash xxx does not match any stored key hashes.

然后,它告诉我在 Facebook 开发者网站上配置我的密钥哈希。谁能向我解释我做错了什么或我需要做什么来解决这个问题?我在 Facebook 上有测试应用程序,但我删除了它们,只有真正的应用程序。

需要注意的是,当我使用原始密钥散列(我从 OpenSSL 获得的那个)并且这是第一次通过我的应用程序登录时,它会起作用(请求权限等等)。之后似乎每次都失败。

哈希 link - http://imgur.com/O4wXqDd

您需要确保将密钥哈希放入 Facebook 应用程序帐户中。

只有当您没有在 fb 应用程序帐户中添加它们并在应用程序中使用不同的时,才会出现密钥哈希不匹配问题。

这意味着您已经授权了该应用程序,但是当您单击登录时,它无处可去,因此它只是位于同一屏幕上。