在Android中登录Facebook的密钥哈希

时间:2014-03-26 08:59:48

标签: android facebook facebook-graph-api hash facebook-login

您好我正在开发两个具有Facebook登录功能的Android应用程序。我通过使用Facebook doc中给出的以下代码获取密钥哈希

try {
    PackageInfo info = getPackageManager().getPackageInfo(
            "com.mypackage.xyzproject", 
            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) {

} catch (NoSuchAlgorithmException e) {

}

对于android app,我得到了像2R9ySOpkkkqSwQW9JuO97YV2mnk=这样的密钥哈希。所以我很困惑我是否会在Facebook开发者帐户中为应用程序添加相同的密钥哈希,或者我得到错误的密钥哈希。

我的下一个问题是,我可能必须在Play商店中生成不同的密钥哈希值。

2 个答案:

答案 0 :(得分:1)

请将此用于生成密钥哈希:

keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64

注意:您必须安装openssl

我希望这会对你有所帮助。谢谢你。

编辑:

如果您想使用密钥库,请使用以下内容:

keytool -exportcert -alias "<your app's alias>" -keystore "Path of Keystore" | openssl sha1 -binary | openssl base64

试试这个。

答案 1 :(得分:0)

是的,您必须生成2个键哈希,因为您没有使用debug.keystore登录。出于开发目的,您需要从debug.keystore生成密钥哈希,并将其上传到Google Play,您需要从release.keystore生成密钥哈希。然后将两个哈希值放在FB应用程序设置中