重新安装后错误的Facebook哈希

时间:2016-07-07 06:20:55

标签: android facebook facebook-login

我有一个奇怪的问题。

我正在尝试使用他们的sdk将facebook登录集成到我的应用中。我能够登录工作,一切顺利。现在我们希望发布产品,所以我签了apk并使用openssl命令将发布的keyhash添加到facebook。

为了正确测试everythnig我从设备中删除了应用程序并将其作为用户从我的Facebook帐户中清除。 安装应用程序后,我确实能够登录,一切正常。然而,再次卸载应用程序(这次没有从Facebook帐户清除应用程序)并再次安装它我收到哈希密钥不匹配。因为我使用相同的签名apk,所以对我没有任何意义。

另请注意,只有在设备上安装了原生Facebook应用程序时才会发生这种奇怪的事情。

以前有人遇到过这样的问题吗?我一直在和这个摔跤

1 个答案:

答案 0 :(得分:3)

很抱歉,但我没有评论可能有声誉,但之前也发生过同样的事。 当我们创建发布版apk时,它将生成新的哈希密钥。为此,您可以从android studio运行发布模式apk并将密钥从代码写入控制台,然后将此密钥添加到Facebook帐户。生成密钥代码如下:

//获取Facebook帐户的密钥哈希

 try {
    PackageInfo info = getPackageManager().getPackageInfo("your package name", 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) {

}