什么是密钥散列?为什么需要它?它是唯一的吗?为什么它是 facebook 集成所必需的

What is a key hash?Why it is needed?Is it unique?Why it is necessary for facebook integration

什么是密钥哈希,为什么需要它,它是唯一的吗?还有为什么需要 facebook 整合?

我获取 HashKey 的代码:

try{
   PackageInfo info = getPackageManager().getPackageInfo("com.example.packagename", 
            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) {
  e.printStackTrace();

} catch (NoSuchAlgorithmException e) {
    e.printStackTrace();
}

要将您的应用程序与 Facebook 集成 API,您将需要此密钥。 Log KeyHash 将为您提供必须在 Facebook 应用程序的设置页面中写入的值。 而不是只有具有给定 SHA1 代码的应用程序才能访问 facebook api。否则你会得到授权错误。 P.S:对于所有应用程序和测试设备甚至工作空间来说,它都是独一无二的。

什么是密钥哈希?

这是一个 28 character 字符串,Facebook 使用它来验证您的 appFacebook 之间的交互。

为什么它是独一无二的?

如评论中所述,它在 Facebook 开发者平台中识别您的 app

为什么需要它?为什么需要 Facebook 集成?

需要验证您的 appFacebook 之间的信息交换。否则,当您将应用发布到商店时,您的 Facebook 集成可能无法正常工作。如果您 运行 应用程序使用 Facebook 登录,那么您需要将 Android 开发密钥哈希添加到您的 Facebook 开发者资料中。