密钥哈希无效。密钥哈希不匹配。如果我通过Facebook应用程序连接显示

时间:2016-06-02 08:17:43

标签: android facebook hash

我在我的应用中集成了facebook。我必须通过Facebook登录,我有appID和系统生成的密钥哈希存储在developer.facebook.com。我通过Facebook应用程序登录它显示无效键哈希并显示该键哈希。但是,如果我从我的设备中删除fb应用程序。它将通过chrome登录fb并成功获取用户详细信息。

现在我想知道的是,为什么如果通过Facebook应用程序显示错误。我想通过Facebook应用程序,所以请给我一个解决方案。

提前致谢。

1 个答案:

答案 0 :(得分: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因发布/调试环境而异或参考enter image description here下方的图片