Facebook密钥哈希与任何存储的密钥哈希都不匹配

时间:2015-01-25 09:34:07

标签: android facebook

我一直在尝试从我的Android应用程序中实现facebook共享。我已经阅读了这份文件。

https://developers.facebook.com/docs/android/share

我已经成功整合了我的开发键哈希一次,并成功地从我的应用程序共享到Facebook。问题是当我尝试为我的另一个应用程序实现相同的步骤时。我已经成功添加了我的密钥哈希并将我的应用程序与facebook链接但是当我点击“POST”时,它显示密钥哈希值不匹配,并且错误消息附带的密钥哈希显示前一个应用程序的密钥哈希。

我已经使用它仔细检查了我的密钥哈希。

try {
    PackageInfo info = getPackageManager().getPackageInfo(
        "My Project", 
        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));
        Toast.makeText(this, Base64.encodeToString(md.digest(), Base64.DEFAULT), Toast.LENGTH_LONG).show();
    }
} catch (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}

任何解决方案?

1 个答案:

答案 0 :(得分:1)

那是因为你有2个Key哈希。 一个用于调试,第二个用于发布,当您使用自定义密钥库而不是Android调试版将应用程序发布到Google Play时。

您的场景听起来就像您正在从Eclipse / Android Studio运行您的应用程序,当您这样做时,您正在使用Debug keystore密钥哈希,您可能已将其包含在Facebook Developer Console中,就像您之前的应用程序一样。

如果您要使用其他密钥库导出APK,则必须获取此特定密钥库的哈希密钥,例如您在上面提到的在线示例中。

我很高兴知道您是使用调试密钥库还是您自己的APK签名。这将使事情变得更加简单。