在android中的Facebook应用程序中无效的哈希键

Ran*_*mar 2 android facebook key facebook-login

我从android下面的代码中获取了哈希键:

try {
PackageInfo packageInfo = getPackageManager().getPackageInfo(getPackageName(),
PackageManager.GET_SIGNATURES);
for (Signature signature : packageInfo.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
}
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());
}
Run Code Online (Sandbox Code Playgroud)

但它是无效密钥...请建议如何验证Facebook登录的哈希密钥....

MrD*_*umb 9

您正在使用调试密钥获取哈希键...如果您未在调试模式下签署包并运行应用程序,则可能会有效.你需要做的是:

1)转到清单文件并添加到应用程序android:debuggable ="true".

2)签署应用程序,capy并手动安装到您的设备或从命令行使用"adb install path_to_apk".

3)现在运行您的应用程序并监控logcat.

4)你将得到一个新的密钥,它将是一个匹配的密钥,密钥facebook应用程序显示在错误消息中,你所拥有的密钥现在在最后一个有一个=符号.

5)在Facebook开发者网站上注册此密钥

替代技巧

你可以做另外一件事只需注册错误信息中显示的密钥msg"密钥散列###与任何存储的密钥哈希都不匹配"只需在###的末尾添加=.它就像### =

你完成了!! 希望这会奏效.

  • 谢谢......我尝试为签名版本生成自己的哈希密钥,但这不起作用.所以我尝试了替代技巧..工作:) (3认同)