如果安装了Native Facebook应用程序,则无法使用SDK登录Facebook

时间:2014-04-17 09:39:31

标签: android facebook

我在我的应用程序中集成了Facbook SDK,并且在我在Play商店发布之前,所有作品都已经完成。当我发布应用程序时,如果安装了Facebook应用程序,则不再登录Facebook。

错误是:

com.facebook.http.protocol.ApiException: Key hash xxxxxxxxxxxxx does not match any stored key hashes.

但我将这个新密钥哈希和旧密钥哈希(调试版本)保存到我的Facebook应用程序设置中。

只有在设备中安装了Facebook应用程序时才会发生这种情况,如果没有,我就没有这个问题。

1 个答案:

答案 0 :(得分:0)

我发现了这个错误。 Facebook在错误堆栈跟踪中显示错误的密钥哈希。

Facebook以某种方式取代角色。对于我的情况:我将' - '更改为'+'并在键的末尾添加'='并为我工作。

为了100%安全,请在onCreate()中使用此代码生成密钥哈希。

    private void generateHashKey() {
    // Add code to print out the key hash
    try {
        PackageInfo info = getPackageManager().getPackageInfo(
                "your.package.name", PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            System.out.println("KeyHash:" + Base64.encodeToString(md.digest(),Base64.DEFAULT));
        }
    } catch (NameNotFoundException e) {

    } catch (NoSuchAlgorithmException e) {

    }
}