【问题标题】:Invalid key hash. The Key hash doesnot match. is showing if i connect through facebook app无效的密钥哈希。密钥哈希不匹配。显示我是否通过 facebook 应用程序连接
【发布时间】:2016-06-02 17:29:14
【问题描述】:
我的应用中集成了 Facebook。我必须通过 facebook 登录,我有 appID 和系统生成的密钥哈希存储在 developer.facebook.com 中。我通过 facebook 应用程序登录它显示无效的密钥哈希并显示该密钥哈希。但是,如果我从我的设备中删除 fb 应用程序。它将通过chrome进入fb登录并成功获取用户详细信息。
现在我想知道的是,为什么如果通过 facebook 应用程序会显示错误。我想通过 facebook 应用程序,所以请给我一个解决方案。
提前致谢。
【问题讨论】:
标签:
android
facebook
hash
【解决方案1】:
将下面的示例代码粘贴到 Application 类的 OnCreate 方法中(仅用于获取 ssh 密钥)
import android.util.Base64;
import android.util.Log;import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.Signature;import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
MessageDigest md = null;
try {
PackageInfo info = context.getPackageManager().getPackageInfo(
context.getPackageName(),
PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
}
} catch (PackageManager.NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
Log.i("KeyHash = ",Base64.encodeToString(md.digest(), Base64.DEFAULT));
以上代码将在您的日志中打印 KeyHash。
在facebook 开发者面板中复制并粘贴密钥。
注意: Keyhash 因发布/调试环境而异,或参考下面的图片