我在我的应用中集成了facebook登录,并使用release .jks play store signin file 创建了密钥哈希,并在fb控制台中添加了生成的keyhash,并且没有添加任何其他密钥哈希。现在,当我尝试使用fb登录登录时,它会出错:
密钥哈希无效。密钥哈希xxxxfgxxxdfdsxxx =与任何存储的密钥哈希值不匹配。在https://developers.facebook.com/apps/xxxxx7xx4xxxx/
配置您的应用密钥哈希值及以上(xxxxfgxxxdfdsxxx =)给定的密钥哈希甚至不在我的fb开发者控制台中。
答案 0 :(得分:0)
我不知道为什么但是看Facebook需要两个关键的哈希值,
1)我们使用.jks
文件释放密钥哈希创建
keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64
和
2)它还向我们显示设备中的(xxxxxxxxxx =)键在您的键哈希值中不匹配。
它在您的活动中使用此方法。
public void getHashkey(){
try {
PackageInfo info = getPackageManager().getPackageInfo(getApplicationContext().getPackageName(), PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.i("Base64", Base64.encodeToString(md.digest(),Base64.NO_WRAP));
}
} catch (PackageManager.NameNotFoundException e) {
Log.d("Name not found", e.getMessage(), e);
} catch (NoSuchAlgorithmException e) {
Log.d("Error", e.getMessage(), e);
}
}
所以当我们输入两个关键的哈希值时。它运作得很好。