带有 Cordova 的 Facebook 的 Android 密钥哈希

Posted

技术标签:

【中文标题】带有 Cordova 的 Facebook 的 Android 密钥哈希【英文标题】:Android Key Hash for Facebook with Cordova 【发布时间】:2015-05-10 13:32:22 【问题描述】:

我正在使用 Meteor 和 Cordova 开发一个混合应用程序。我正在尝试配置 Facebook Connect 并让它在 ios 上运行,但我被困在 android 上。我似乎找不到正确的密钥哈希。 我总是收到消息:

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

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

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

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

【问题讨论】:

【参考方案1】:

Meteor 在通过meteor run android-device 创建安卓应用时使用自己的调试密钥库。 密钥库位于 ~/.meteor/android_bundle/.android/debug.keystore

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

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

【讨论】:

【参考方案2】:

我遇到了同样的问题,只需将错误消息上的密钥放在 FB 设置上。它奏效了。

【讨论】:

很难区分该消息中的某些字符,例如L / I, O / 0. 不能尝试所有组合。 无法从本机流程中复制/粘贴。这就是首先提出这个问题的原因。 我不明白你的意思。在 windows cmd 行或 linux 中,您会收到错误,您只需复制粘贴密钥【参考方案3】:

Facebook keyhash 与您的应用程序的包名称和密钥库一起使用。

使用生产密钥库对您的 apk 进行签名,并使用以下代码获取 facbook 密钥哈希

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 将以 '=' 等于符号开头。 出于测试目的,您可以同时拥有来自调试密钥库和生产密钥库的密钥哈希。

更多信息请见here。

【讨论】:

我正在创建一个 Cordova 应用程序,就像我说的那样,所以我真的不知道将您提议的 Java 代码放在哪里。必须有不使用自定义代码的解决方案? 该帖子明确指出这是一个 Cordova 问题,尽管代码 sn-p 确实有效,但由于没有解释如何将其放入 Cordova 项目而被否决。

以上是关于带有 Cordova 的 Facebook 的 Android 密钥哈希的主要内容,如果未能解决你的问题,请参考以下文章

带有 facebook/gmail 的 OAuth 不适用于 iOS 模拟器(Cordova 应用程序 + Firebase)

更改权限后无法在 Cordova iOS 上使用 Facebook SDK 登录

使用cordova获取facebook用户资料

Cordova 3.4 Facebook 连接,添加库

Phonegap Cordova 使用 Facebook 登录

Cordova:适用于 Android 的 Facebook 插件构建错误