我正在使用 FacebookSDK 并按照所有步骤生成新的密钥哈希,使用调试密钥库生成的密钥哈希就像一个魅力,但使用我们自己的几个密钥库生成的密钥哈希不起作用,然后我尝试了故障排除中给出的功能,但它仍然不起作用. 我尝试在 onCreate 中使用以下代码
// Add code to print out the key hash
try {
System.out.println("Inside try for keyhash");
PackageInfo info = getPackageManager().getPackageInfo(
"com.myapp.facebookint",
PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
System.out.println("KeyHash:"+Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
} catch (NameNotFoundException e) {
System.out.println("keyhash name not found");
} catch (NoSuchAlgorithmException e) {
System.out.println("keyhash algo not found");
}
它给了我一个 keyhash,我在 Facebook 应用程序设置中插入了它,没有解决方案!现在我想知道使用keyhash的概念,facebook如何识别它?如果我只是使用调试 keyhash 上传应用程序会发生什么?
我的印象是,facebook 将 keyhash 与应用程序本身的签名相匹配,如果两者都使用相同的密钥库签名,那么它允许应用程序进行身份验证,但似乎并非如此。当我像准备发布一样导出应用程序时,通过文件资源管理器将 apk 下载到手机中并尝试从那里安装和运行,这与在调试模式下所做的相同。
任何人都可以对此有所了解。