2

我最近开始研究 facebook API,在那里我遇到了生成哈希密钥并将其注册到 facebook 以供进一步使用的情况。

为此,我使用了以下代码

PackageInfo info;
try {
    info = getPackageManager().getPackageInfo("com.you.name", PackageManager.GET_SIGNATURES);
    for (Signature signature : info.signatures) {
        MessageDigest md;
        md = MessageDigest.getInstance("SHA");
        md.update(signature.toByteArray());
        String something = new String(Base64.encode(md.digest(), 0));
        //String something = new String(Base64.encodeBytes(md.digest()));
        Log.e("hash key", something);
    }
} catch (NameNotFoundException e1) {
    Log.e("name not found", e1.toString());
} catch (NoSuchAlgorithmException e) {
    Log.e("no such an algorithm", e.toString());
} catch (Exception e) {
    Log.e("exception", e.toString());
}

一切都很好,因为我可以在我的应用程序中使用 facebook。

但是,在 playstore 上发布应用程序后,我发现错误 Invalid_Android_key 参数。密钥与任何允许的密钥不匹配 在https://developers.facebook.com/apps/配置您的应用程序密钥哈希..........

请让我知道这个问题的原因以及如何处理这个问题。

4

1 回答 1

1

我有同样的问题,在创建 apk 后,密钥散列被改变了!因为使用这段代码你得到了调试密钥库哈希,但是在创建 apk 时,它是另一个哈希,必须在模拟器上尝试你的 apk 后从日志中捕获它,然后删除代码并在没有这个日志的情况下再次导出,我知道这很麻烦,但对我来说它比 keytool 更容易...

于 2013-10-23T07:17:31.810 回答