【发布时间】:2018-01-10 17:05:16
【问题描述】:
我知道它非常古老,并且有很多类似问题的问题。我已经看到了不同的答案,但问题仍然出现在我的应用程序中。
我正在处理应用程序中的 Facebook 登录。在上传到 Google Play 之前,它在本地运行良好。但是在 Google Play 上发布后,它给出了 INVALID KEY HASH 的错误。
我使用下面给出的代码在 Android Studio 上生成了一个密钥哈希,并将其保存在 Facebook 开发者控制台上。在 Facebook 开发者控制台中,我还将错误消息中出现的密钥散列放在应用程序上,但它仍然给我同样的错误。
PackageInfo info;
try {
info = getPackageManager().getPackageInfo("i.am.peace.by.murgency", PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md;
md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
String something = new String(Base64.encode(md.digest(), 0));
//String something = new String(Base64.encodeBytes(md.digest()));
Log.e("hash key", something);
}
} catch (PackageManager.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());
}
用这个语句通过终端:
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
【问题讨论】:
-
您的 Facebook 开发者控制台上是否有 2 个密钥哈希?我的意思是一个发布密钥和一个调试密钥,或者只是一个调试密钥哈希??
-
@Zoe,如果您阅读了我的问题,显然我在那里提到我已经阅读了很多消息,但我遇到了同样的问题。
-
@AsutoshPanda 感谢您的消息。在调试时,我将 Hashkey 从我的代码放到了 facebook。之后我没有放任何钥匙。只有我把错误消息键哈希放在那里。你能帮我修一下吗?
-
检查我的答案。您还必须添加释放密钥。