我在我的应用程序中集成了Facbook SDK,并且在我在Play商店发布之前,所有作品都已经完成。当我发布应用程序时,如果安装了Facebook应用程序,则不再登录Facebook。
错误是:
com.facebook.http.protocol.ApiException: Key hash xxxxxxxxxxxxx does not match any stored key hashes.
但我将这个新密钥哈希和旧密钥哈希(调试版本)保存到我的Facebook应用程序设置中。
只有在设备中安装了Facebook应用程序时才会发生这种情况,如果没有,我就没有这个问题。
答案 0 :(得分:0)
我发现了这个错误。 Facebook在错误堆栈跟踪中显示错误的密钥哈希。
Facebook以某种方式取代角色。对于我的情况:我将' - '更改为'+'并在键的末尾添加'='并为我工作。
为了100%安全,请在onCreate()中使用此代码生成密钥哈希。
private void generateHashKey() {
// Add code to print out the key hash
try {
PackageInfo info = getPackageManager().getPackageInfo(
"your.package.name", PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
System.out.println("KeyHash:" + Base64.encodeToString(md.digest(),Base64.DEFAULT));
}
} catch (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
}