适用于Facebook的Android Key Key Hash与Cordova

时间:2015-03-09 11:46:45

标签: android facebook cordova meteor

我正在与Meteor和Cordova开发混合应用程序。我试图配置Facebook Connect并让它在iOS上工作,但我仍然坚持使用Android。我似乎无法找到正确的密钥哈希。 我总是收到消息:

  

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

我已经尝试通过以下命令找到正确的密钥哈希:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

和标准密码" android"。我将结果密钥添加到Facebook但它没有帮助。我还尝试了以下post中的工具。它给了我另一个也没用的钥匙。有什么想法吗?

3 个答案:

答案 0 :(得分:7)

Meteor在通过 meteor run android-device 创建Android应用程序时使用自己的调试密钥库。 密钥库可以在〜/ .meteor / android_bundle / .android / debug.keystore 找到。

使用以下代码和密钥库密码 android 创建密钥哈希:

keytool -exportcert -alias androiddebugkey -keystore \
~/.meteor/android_bundle/.android/debug.keystore | openssl sha1 -binary | openssl base64

答案 1 :(得分:2)

我遇到了同样的问题,只需将错误信息中的密钥放在FB设置上就可以了。

答案 2 :(得分:-1)

  

Facebook keyhash适用于您的应用程序的软件包名称和密钥库。

使用生产密钥库签署您的apk,并使用下面的代码获取facbook keyhash

try {
PackageInfo info = getPackageManager().getPackageInfo("your package", PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
    MessageDigest md = MessageDigest.getInstance("SHA");
    md.update(signature.toByteArray());
    Log.e("MY KEY HASH:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
} catch (NameNotFoundException e) {

} catch (NoSuchAlgorithmException e) {

}

facebook Keyhash将以'='等于签名开始。出于测试目的,您可以同时拥有来自debug keystore和生产密钥库的keyhash。

有更多信息here