我正在创建一个将与 Facebook 集成的 Android 应用程序。我已经能够成功生成一个密钥哈希,当我运行我的应用程序登录时,我成功地进入了接受权限按钮。我点击了接受,从那时起,我就无法从应用程序重新登录。我收到错误“(插入我在此处使用的密钥)与任何允许的密钥不匹配。在(列出我的 Facebook 开发人员 URL)处配置您的应用程序密钥哈希”。有什么理由可以使 Key Hash 起作用然后停止?我没有更改任何 facebook 设置,也没有更改任何应用程序代码。我已经尝试创建一个新的密钥哈希,但这仍然不起作用。任何关于这可能是什么或如何解决它的想法将不胜感激!
问问题
880 次
1 回答
2
我想通了。不知何故,哈希键不再匹配我在 Facebook 端插入的内容。使用 facebook 文档,我在 onCreate 方法中添加了代码,告诉我 LogCat 中的哈希键是什么。如果我搞砸了我的包名,我还为我的捕获异常添加了一些日志记录代码。这是代码:
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");
}
在我添加并运行它之后,我在我的日志猫中找到了哈希键,然后将它复制到我的 Facebook 应用程序中。保存它,再次运行应用程序,它工作!
于 2013-07-19T00:16:17.483 回答