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

时间:2015-03-19 00:17:22

标签: android hash android-studio facebook-login facebook-sdk-3.1

我最初使用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登录按钮。我的意思是,当我点击时,似乎没有任何事情发生。它显示一个加载图标,但什么都没有。当我切换回原始哈希时,它给出了一个错误,表示

  

无效的密钥哈希。密钥哈希xxx与任何存储的密钥哈希都不匹配。

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

需要注意的是,当我使用原始密钥哈希(我从OpenSSL获得的哈希)并且它是第一次通过我的应用程序登录时,它将起作用(请求权限和诸如此类的东西)。在此之后,它似乎每次都失败了。

哈希链接 - http://imgur.com/O4wXqDd

2 个答案:

答案 0 :(得分:1)

这意味着您已经授权该应用程序,但是当您点击登录时,它没有其他地方可以去,所以它只是在同一个屏幕上。

答案 1 :(得分:0)

您需要确保将密钥哈希值放在Facebook应用帐户中。

密钥哈希不匹配问题仅在您未在fb app帐户中添加并在应用程序中使用其他帐户时发生。