Facebook API登录失败,手机上安装了FB应用程序

时间:2012-05-09 12:45:18

标签: android facebook facebook-login

我正在构建一个应用程序,它将支持facebook。我从原始的Git repos下载了facebook API和他们的样本“Hackbook”。问题在于登录 - 如果手机上没有安装原始FB应用程序,登录将通过自定义对话框,一切正常,但如果安装了FB应用程序,黑客手册会自动重定向到原始FB应用程序,然后什么也没发生。登录是不可能的。 我已经在五款不同的手机上测试了它,并且总是存在同样的问题。

5 个答案:

答案 0 :(得分:18)

我有类似的问题。就我而言,我没有使用我的签名密钥创建一个哈希密钥。我只使用 debug.keystore 默认签名密钥创建了一个哈希密钥。

一旦我使用我的应用发布签名密钥创建了一个哈希密钥,就解决了这个问题。如果您还没有这样做,请使用您的签名密钥创建一个新的哈希密钥(用于在市场上传)并将其添加到您应用的Facebook控制面板。

希望这有帮助。

答案 1 :(得分:4)

我辛苦了两天&最后获得了解决方案,这是获取哈希密钥的错误方法 -

keytool -exportcert -alias *<your _alias_name>* -keystore *<key_store_path>* | [openssl_bin_directory]\openssl sha1 -binary | [openssl_bin_directory]\openssl base64

正确方式键入这3行,cmd中一次输入一行。在第一行之后,系统会要求您插入密钥库密码。

keytool -exportcert -alias *<your _alias_name>* -keystore *<key_store_path>* > [openssl_bin_directory]\debug.txt
[openssl_bin_directory]\openssl sha1 -binary [openssl_bin_directory]\debug.txt > [openssl_bin_directory]\debug_sha.txt
[openssl_bin_directory]\openssl base64 -in [openssl_bin_directory]\debug_sha.txt > [openssl_bin_directory]\debug_base64.txt

如果您想了解详细信息,请在此处描述 RIGHT 方式 -

http://facebook.stackoverflow.com/questions/13281913/app-is-misconfigured-for-facebook-login-with-release-key-hash

或在这里

Facebook Android Generate Key Hash

答案 2 :(得分:1)

使用此函数获取散列密钥(debug和release apk)并将其放入developer.facebook.com/apps中的应用程序

private void calculateHashKey(String yourPackageName) {
    try {
        PackageInfo info = getPackageManager().getPackageInfo(
                yourPackageName,
                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();
    }
}

这对我帮助很大..希望这对你也有帮助..

答案 3 :(得分:1)

我已经解决了这个问题。使用keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64获取密钥哈希后,我已成功首次登录发布模式... 然后第二次我得到了常见的错误 您的密钥"*********real*key************"与应用程序设置中指定的允许密钥不匹配。

只需使用Facebook在错误消息中提供的"*********real*key************"我现在在发布模式下成功登录。 因此,请务必在输入此密钥时使用完全相同的密钥。这封信我small(L) i.e (l)会让你陷入困境。我制作了两个键,在第一个键中我使用了small(L) i.e (l),在第二个键中我使用了I.并将这些键放在了开发者应用程序中。
它现在正在运作....

答案 4 :(得分:1)

在我的情况下,问题是即使在生成正确的密钥后,当Facebook应用程序安装在设备上时,用户登录也会被取消。

我在登录前添加了以下行,效果很好。

LoginManager.getInstance().logOut();