我们知道Facebook SDK与Android集成需要密钥散列配置。我们也可以使用以下方式生成keyhash。 FB建议的Openssl和Android代码。如果我们使用openssl,我们应该使用我们用来导出app的密钥库而不是debug.keystore。我正在使用第二种方法来获取keyhash。我是我的应用程序的开发人员,将由另一个人从另一个系统签名和发布。我的问题是:我应该在哪里执行以下代码来获取keyhash?在我的(开发人员)机器上或从我们要签署和发布的机器上?对于不同的机器,我的应用程序的keyhash会不同吗?请指导我。
try {
PackageInfo info = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.i("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
} catch (Exception e) {
}
答案 0 :(得分:1)
您还需要将Android键哈希值与应用相关联。 Facebook使用密钥哈希作为真实性的安全检查。默认情况下,应用程序包使用特定于计算机的调试密钥进行签名。发布应用程序时,通常使用不同的发布密钥进行签名。因此,您需要确保在Facebook上设置所有相关键的哈希值:
转到左侧导航栏中的“设置”,然后点击“添加平台”按钮,然后选择Android。添加您获得的调试密钥哈希。如果要在多台计算机上进行开发,则应添加多个keyhashes。
答案 1 :(得分:0)
在oncreate()方法中使用此代码,一旦获得KeyHash,然后将该keyhash粘贴到 https://developers.facebook.com/ 应用程序 - >创建新应用程序