Cordova Android Facebook登录生成无效的Android密钥参数
我正在从事一个整合Facebook SDK的Cordova项目 我正在使用Cordova 2.9和Android Facebook SDK 3.5.2 我通过Android SDK版本的Eclipse创建了自己的密钥库,并成功地将其用于向客户端提供发布版本 Facebook应用程序为Android启用了SSO,可以公开使用,我还生成了我的哈希,并将其包含在相关设置部分 直到今天,一切都很顺利 我的客户已经向我提供了他们自己的密钥库,用于签署和构建APK并发布给他们 我使用Eclipse导出Android项目并选择它们新提供的密钥库。应用程序成功导出,我可以将其推送到测试设备上 现在,当我尝试通过Facebook登录时,你不能通过任何其他途径进入应用程序,Facebook登录对话框出现,我输入我的凭据,但我收到一个Facebook错误,说明我提供的密钥与任何允许的密钥不匹配 显示的密钥不是我识别的密钥,因为我一直使用同一台机器进行开发,并且之前使用第4节中描述的技术生成了密钥哈希: 我可以使用客户端提供的密钥来签署和发布他们的应用程序吗 既然我已经开始使用客户端的密钥存储,为什么错误消息中会报告未知哈希Cordova Android Facebook登录生成无效的Android密钥参数,android,facebook,cordova,keystore,Android,Facebook,Cordova,Keystore,我正在从事一个整合Facebook SDK的Cordova项目 我正在使用Cordova 2.9和Android Facebook SDK 3.5.2 我通过Android SDK版本的Eclipse创建了自己的密钥库,并成功地将其用于向客户端提供发布版本 Facebook应用程序为Android启用了SSO,可以公开使用,我还生成了我的哈希,并将其包含在相关设置部分 直到今天,一切都很顺利 我的客户已经向我提供了他们自己的密钥库,用于签署和构建APK并发布给他们 我使用Eclipse导出And
如果您有任何想法,我们将不胜感激。我认为问题不在于将新签名密钥的哈希添加到Facebook控制台。我相信您已经为Eclipse自动生成的调试密钥完成了这项工作,如Facebook入门指南中所述。只需为新密钥存储库(即客户端的密钥存储库)生成密钥哈希
keytool-exportcert-alias yourkey-keystore path_to_your_new_keystore | openssl sha1-binary | openssl base64
然后在android支持的密钥哈希部分将哈希添加到Facebook控制台。希望这有助于解决您的问题
更新
对于另一种方法(read=>bit cumber),请遵循以下步骤
1.在您的主要活动或应用程序中使用以下代码
// DO NOT FORGET TO REMOVE
PackageInfo info;
try {
info = getPackageManager().getPackageInfo("com.you.name", PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md;
md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
String something = new String(Base64.encode(md.digest(), 0));
//String something = new String(Base64.encodeBytes(md.digest()));
Log.e("hash key", something);
}
} catch (NameNotFoundException e1) {
Log.e("name not found", e1.toString());
} catch (NoSuchAlgorithmException e) {
Log.e("no such an algorithm", e.toString());
} catch (Exception e) {
Log.e("exception", e.toString());
}
// DO NOT FORGET TO REMOVE
代码取自—
2.将项目导出为已签名的apk。选择新的密钥库和别名
3.将apk安装到设备上
4.等待日志消息出现,从logcat控制台复制密钥散列
5.在Facebook web仪表板的Android密钥哈希部分下添加另一个密钥哈希
6.删除上述代码,重新生成已签名的apk。在设备上试用并访问facebook登录
这种替代方法肯定有效。希望这有帮助 这个问题听起来有点太抽象了。你能详细解释一下你的问题吗?步骤、错误和之前对你有用的东西?啊,更清楚了。谢谢它仍然没有生成与错误中相同的密钥。生成密钥的人是否需要在生成密钥时从同一台机器生成他们的Facebook密钥散列?不,不应该是这样,因为你有密钥库和密码。它应该提示输入密码。无论如何,我已经用另一个选项更新了答案