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

Posted

技术标签:

【中文标题】无效的密钥哈希。密钥哈希与任何存储的密钥哈希不匹配 facebook android【英文标题】:invalid key hash. the key hash does not match any stored key hashes facebook android 【发布时间】:2014-10-19 09:49:39 【问题描述】:

我正在开发一个使用 Facebook 身份验证的 android 应用程序。在调试模式下,我使用代码生成的调试密钥哈希:

try 
            PackageInfo info = getPackageManager().getPackageInfo(
                    "com.org.package", PackageManager.GET_SIGNATURES);
            for (Signature signature : info.signatures) 
                MessageDigest md = MessageDigest.getInstance("SHA");
                md.update(signature.toByteArray());
                String sign = Base64
                        .encodeToString(md.digest(), Base64.DEFAULT);

                    Log.e("MY KEY HASH:", sign);

            
         catch (NameNotFoundException e) 
         catch (NoSuchAlgorithmException e) 
        

现在我想在 Google Play 商店中发布我的应用,所以我需要生成一个发布密钥哈希。我使用了facebook开发者文档中提到的方法:

keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64

对于 RELEASE_KEY_PATH,它是导出项目到 apk 时生成的 kaystore 的路径。

我将生成的嘿哈希添加到 facebook 应用程序,但我仍然有错误:

无效的密钥哈希。密钥哈希不匹配任何存储的密钥哈希 facebook android。

当我添加由 java 代码生成的 hey 哈希时,它可以工作,但我不能为每个设备都这样做,我需要发布我的应用程序,以便每个人都可以使用它。

解决办法是什么?请帮我。

【问题讨论】:

【参考方案1】:

我已经解决了我的问题:D

因此,要获得发布密钥哈希,您需要在您的 Android 模拟器中安装 apk 文件,并将以下代码生成的密钥添加到您的 Facebook 应用中:

try 
            PackageInfo info = getPackageManager().getPackageInfo(
                    "com.org.package", PackageManager.GET_SIGNATURES);
            for (Signature signature : info.signatures) 
                MessageDigest md = MessageDigest.getInstance("SHA");
                md.update(signature.toByteArray());
                String sign = Base64
                        .encodeToString(md.digest(), Base64.DEFAULT);

                    Log.e("MY KEY HASH:", sign);

            
         catch (NameNotFoundException e) 
         catch (NoSuchAlgorithmException e) 
        

祝你好运!

【讨论】:

在设备上的同样的东西,而不是在模拟器中? 如果你想用你自己的 Facebook 开发者帐户测试你的应用程序,你不需要使用 apk,你可以在模拟器或设备上运行你的应用程序并获取生成的密钥哈希.但是,如果您想发布您的应用程序,您需要使用我在下面提到的解决方案。祝你好运。

以上是关于无效的密钥哈希。密钥哈希与任何存储的密钥哈希不匹配 facebook android的主要内容,如果未能解决你的问题,请参考以下文章

带有 Cordova 的 Facebook 的 Android 密钥哈希

Google Play 应用签名 - 密钥哈希不匹配

Facebook SDK 登录问题

Android Facebook 与无效密钥哈希的集成

Android Facebook 4.0.1 无效密钥哈希错误

Cordova facebook 插件无效的密钥哈希