10

我正在构建一个应用程序,它将支持 facebook。我已经从原始 Git 存储库下载了 facebook API 及其名为“Hackbook”的示例。问题在于登录 - 如果手机上未安装原始 FB 应用程序,则登录将通过自定义对话框进行,一切正常,但如果安装了 FB 应用程序,Hackbook 会自动重定向到原始 FB 应用程序,然后什么也没有发生。登录是不可能的。我已经在五款不同的手机上测试过这个,总是同样的问题。

4

6 回答 6

18

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

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

希望这可以帮助。

于 2012-05-09T12:57:35.050 回答
4

我辛苦了两天终于得到了解决方案,这是获取哈希键的错误方法-

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

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

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

如果您想了解详细信息,此处描述了正确的方法-

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

或在这里

Facebook Android 生成密钥哈希

于 2012-11-15T15:44:22.440 回答
1

使用此功能为您获取哈希键(调试和发布 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();
    }
}

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

于 2014-04-29T10:41:14.053 回答
1

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

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

于 2016-06-02T12:55:56.263 回答
1

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

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

LoginManager.getInstance().logOut();
于 2017-09-22T10:27:23.870 回答
0

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

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

LoginManager.Instance.SetLoginBehavior(LoginBehavior.NativeOnly);

于 2022-02-02T11:59:49.050 回答