我想构建一个使用de facebook sdk登录的android应用程序。我已经按照facebook程序使用sdk并生成关键哈希。现在,当我尝试登录时,我一直收到错误无效keyhash keyhash:与任何存储的键哈希都不匹配。这很奇怪,因为我生成了我的keyhash并通过facebook注册了它。但这给了我错误。我已尝试在其他方面生成keyhashes但这也不起作用。有谁知道如何解决这一问题。你会非常帮助我。
问候
答案 0 :(得分:0)
如果您正在签署您的应用程序然后收到此错误,那么您需要获取Facebook的发布密钥。有很多方法可以实现它,但最简单的方法之一就是:
try {
PackageInfo info = getPackageManager().getPackageInfo(
"com.your.package.name",
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));
}
} catch (NameNotFoundException e) {
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
这将记录发布密钥并将其放在您的fb开发控制台上。干得好! 重要信息:您的应用程序必须使用密钥库进行签名,否则将记录调试密钥。 (还将您的包名称放在PackageInfo中)
将此代码写入您创建的任何活动中,并在获得密钥后删除它。