我正在创建一个可与Facebook集成的Android应用。我已经能够成功生成Key Hash,当我运行我的应用程序登录时,我成功进入了接受权限按钮。我点击接受,从那时起,我无法从应用程序重新登录。我收到错误“(插入我在这里使用的密钥)与任何允许的密钥不匹配。配置您的应用程序密钥哈希值(列出我的Facebook开发人员URL)”。是否有任何理由可以使Key Hash工作然后停止?我没有改变任何Facebook设置,也没有改变任何应用程序代码。我已经尝试创建一个新的密钥哈希,但仍然无法正常工作。关于这可能是什么,或如何解决它的任何想法将不胜感激!
答案 0 :(得分:2)
我想出来了。不知何故,Hash Key刚刚停止匹配我在Facebook端插入的内容。使用facebook文档,我在onCreate方法中添加了代码,告诉我我的LogCat中的哈希键是什么。如果我搞砸了我的包名,我还在一些日志代码中添加了我的catch异常。这是代码:
try {
PackageInfo info = getPackageManager().getPackageInfo(
"com.your.package",
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) {
Log.d("Error1", "NameNotFoundException");
} catch (NoSuchAlgorithmException e) {
Log.d("Error2", "Algorthim");
}
在我添加并运行它之后,我在我的log cat中找到了哈希键,然后将其复制到我的Facebook App中。保存它,再次运行应用程序,它工作正常!