无效的密钥哈希 - android facebook
Posted
技术标签:
【中文标题】无效的密钥哈希 - android facebook【英文标题】:invalid key hash - android facebook 【发布时间】:2016-07-23 11:17:50 【问题描述】:我创建了一个使用 facebook 登录的应用程序。我已将密钥哈希添加到 facebook 开发人员页面,它在所有设备上都运行良好。 现在我已经将应用程序上传到谷歌播放,当我尝试登录时,它说密钥哈希与任何存储的密钥哈希都不匹配。 我复制了错误消息中的密钥哈希并粘贴了它。仍然 - 不起作用。 我尝试使用发布密钥存储在 cmd 中生成密钥哈希 - 不走运。
有谁知道问题出在哪里以及如何解决?
提前致谢!
【问题讨论】:
【参考方案1】:尝试在使用发布证书签名的应用中添加以下代码 sn-p,将哈希输出与您提交到 Facebook 门户的哈希输出进行比较:
PackageInfo info;
try
info = getPackageManager().getPackageInfo("com.package.name", PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures)
MessageDigest md;
md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
String hash= new String(Base64.encode(md.digest(), 0));
Log.e("hash", hash);
catch (NameNotFoundException e1)
Log.e("name not found", e1.toString());
catch (NoSuchAlgorithmException e)
Log.e("no such an algorithm", e.toString());
catch (Exception e)
Log.e("exception", e.toString());
【讨论】:
但这给了我一个用于调试的密钥哈希。它已经在 Facebook 门户中。它与错误消息中的键不同。 使用发布证书发布你的应用并运行sn-p,它将显示发布证书的哈希 如果我尝试通过 android studio 运行应用程序,它会使用调试密钥库(它会从 google play 卸载我的应用程序并安装一个新应用程序)。如果我从 google play 运行应用程序,我会在哪里看到日志消息? 不,你不会。您需要将代码 sn-p 添加到您的项目中,使用发布证书发布一个新的 apk,将 APK 复制到您的设备并安装它。然后将您的手机连接到您的计算机,运行应用程序并检查日志输出 有效!问题是当我将密钥哈希复制到 facebook 门户时,我写了字母 I (i) 而不是 l (L)以上是关于无效的密钥哈希 - android facebook的主要内容,如果未能解决你的问题,请参考以下文章
Android Facebook 4.0.1 无效密钥哈希错误
Phonegap Facebook 插件 - 从 Android 设备中删除应用程序后密钥哈希无效