登录错误:登录此应用程序时出错。请稍后再试

时间:2016-08-20 07:10:53

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

我收到此错误。当我尝试使用Facebook登录我的应用程序时。 当我第一次进行身份验证时,它将正常工作。在我取消申请后,现在尝试使用Facebook登录,我收到了此错误。

另一个问题:在device1中进行身份验证并尝试在设备2上使用Facebook登录时,也会出现同样的错误。

我发现的解决方案:当我从Facebook应用设置中移除应用身份验证时,它正在上面的方案中运行,但这不是一个很好的解决方案,我们可以告诉用户如何执行此操作?

btnFbLogin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(accessToken != null) {
                    boolean expires = accessToken.isExpired();
                    if(!expires) {
                        performFbLoginOrSignUp(accessToken);
                    }
                } else {
                    LoginButton loginButton = (LoginButton) findViewById(R.id.login_button);
                    callbackManager = CallbackManager.Factory.create();

                    if (loginButton != null) {
                        loginButton.setReadPermissions("public_profile", "email", "user_friends");

                        if (CommonUtil.isConnectingToInternet(LoginActivity.this)) {
                            loginButton.performClick();

                            loginButton.setPressed(true);

                            loginButton.invalidate();

                            loginButton.registerCallback(callbackManager, mCallBack);

                            loginButton.setPressed(false);

                            loginButton.invalidate();
                        } 
                    }
                }
            }
        });

Error page

在Facebook的例子中也有一个问题: GitHub link of Facebook example

重现的步骤

  1. 启动应用程序使用Facebook登录验证FB个人资料。

  2. 取消安装该应用并重新安装。

  3. 现在尝试使用Facebook登录。

  4. 将发生上述错误。因为我们已经过身份验证所以需要访问fb配置文件。但在这里我们面临着这个问题。
  5. 此处已​​经过身份验证的页面未显示。
  6. 我正在使用Native FB应用程序与设备Xiaomi Redmi Note 3

18 个答案:

答案 0 :(得分:4)

由于哈希键无效而发生错误。

我们可以使用以下命令创建哈希密钥,并在“设置”->“基本”->“ Android哈希密钥”下更新相同的here

keytool -exportcert -alias ADD_RELEASE_KEY_ALIASE_HERE -keystore ADD_UR_KEYSTORE_PATH_HERE | openssl sha1 -binary | openssl base64

如果需要,可以使用以下命令找到密钥库的发布密钥别名:

keytool -list -keystore ADD_UR_KEYSTORE_PATH_HERE

我也遇到了类似问题,例如使用上述HashKey,如果我直接将发行版APK安装到设备上,登录就可以正常工作,但是当我将APK上传到Play商店并从商店安装应用时,它会显示相同的登录名错误失败。解决方法如下:

  1. 转到发布管理here
  2. 选择发布管理->应用签名
  3. 您可以看到十六进制格式的SHA1密钥应用签名证书。
  4. 以十六进制格式复制SHA1并将其转换为base64格式,您可以使用此link来执行此操作,而无需使用SHA1:部分的十六进制。
  5. 转到Facebook开发者控制台,然后在设置->基本–>密钥哈希中添加密钥(转换为base 64后)。

答案 1 :(得分:3)

我也遇到了这个问题。在Facebook上更新你的密钥哈希

答案 2 :(得分:3)

我通过替换密钥哈希解决了相同的问题,

如何生成要发布的密钥哈希。 打开Chrome浏览器控制台,将十六进制映射键转换为base64

从Google Play控制台复制SHA1键。

> btoa('a1:43:d4:27:c8:04:rr:fr:2g:3b:tg:b5:et:c1:4a:1t:fr:f5:54:5f'.split(':').map(hc => String.fromCharCode(parseInt(hc, 16))).join(''))
< "g5fGIBgB6noFO9ur78BdEr73KG6="

答案 3 :(得分:3)

enter image description here

enter image description here FnnK.jpg

解决方案是-------------- 如果您已经在手机中安装了Facebook应用,则设置LoginBehavior。loginButton.setLoginBehavior(LoginBehavior.WEB_ONLY);

答案 4 :(得分:2)

这是来自Facebook的问题。 Facebook团队确认。

enter image description here

我们将在3天内达成预期决议

答案 5 :(得分:2)

只需将它丢给仍然遇到此问题的人即可。 我通过keytool创建的哈希值不正确。我通过以下操作对其进行了修复:

如果您已经将应用程序上载到了Play商店并启用了“通过Google Play进行应用程序签名”,那么有一种解决方案(至少对我有用):

  • 登录您的游戏机
  • 点击该应用
  • 现在在左侧单击“发布管理”
  • 点击“应用签名”
  • 在“应用程序签名证书”下复制SHA-1证书指纹
  • 转到http://tomeko.net/online_tools/hex_to_base64.php
  • 在第一个字段中粘贴SHA-1
  • 在“输出(base64)”下的输入字段中复制文本
  • 现在打开developer.facebook.com/apps
  • 点击您的应用
  • 在左侧导航至“设置”->“基本”
  • 将此处的Base64文本粘贴在哈希表下 enter image description here

这应该可以解决问题。

答案 6 :(得分:1)

出现此问题是因为您已经通过Facebook对应用程序进行了身份验证,并且您的代码每次都可能包含身份验证(查找和删除)。

请按照以下步骤操作:

  1. 转到Facebook设置。

  2. 删除您的应用。

  3. 确保您已在Facebook开发者页面中添加了Facebook登录,并且您已启用客户端OAuth登录。

  4. 转到您的代码并覆盖回调方法:

    alloca
  5. 在Oncreate方法中,调用AccessToken:

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        mFacebookCallbackManager.onActivityResult(requestCode, resultCode, data);
        if (resultCode == RESULT_OK) {
            Intent secondActivityIntent = new Intent(this, RedirectActivity.class);
            startActivity(secondActivityIntent);
        }
    }
    

答案 7 :(得分:1)

对我来说,这个确切的错误是由于无效的权限字符串引起的。发生在iOS和Android。

答案 8 :(得分:0)

如果您正确设置了密钥哈希,则它可能与 facebook 应用程序有关。 如果设备上安装了 facebook 应用程序,这只会发生在 Android 上! (为了确保,只需卸载 fb 应用程序并重试。) 一种解决方案是使用网络进行身份验证并忽略本机 fb 应用程序。

答案 9 :(得分:0)

(在撰写本文时)对我来说,问题是直接在 Facebook登录->设置页中添加哈希。由于某些奇怪的原因,它无法正确保存它。

我通过转到快速入门并在其中一个步骤中添加哈希并点击保存来解决此问题。 (修复网页时,修复可能会过时)

该工具没有问题,它生成了正确的哈希。带有错误的Play商店哈希的人可能启用了Play商店签名或输入了错误的凭据。

答案 10 :(得分:0)

我今天在我的网站上遇到了同样的问题,然后意识到我正在使用旧的default_graph_version = v3.2。我已将其更改为最新版本:

  

default_graph_version = v4.0

现在,一切都会恢复正常。试试看。

答案 11 :(得分:0)

我遇到了同样的问题,我发现生成的要放在Facebook开发人员控制台中的哈希密钥不合适。我试图从另一台PC生成哈希密钥,它要求我输入该特定密钥库的密码,而在我的PC中则不是这种情况。因此,请确保在创建哈希密钥时要求您输入密钥存储密码,然后将该哈希密钥插入Facebook开发者控制台。

生成哈希密钥的命令:

keytool -exportcert -alias TYPE ALIAS HERE -keystore KEY_STORE_FILE_PATH_HERE | openssl sha1 -binary | openssl base64

答案 12 :(得分:0)

我遇到了同样的问题。

这是我的错误。

keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64

键入此命令时,它提示Enter keystore password:。我给的是keyPassword而不是storePassword,它没有给出任何错误消息,而是生成了另一个哈希!

答案 13 :(得分:0)

我推荐这个

https://developers.facebook.com/docs/android/getting-started

或仅在onCreate()方法中添加以下代码,这将返回密钥哈希。

 // Add code to print out the key hash
try {
    PackageInfo info = getPackageManager().getPackageInfo(
            "com.facebook.samples.hellofacebook", 
            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) {

}

添加以上代码以检索密钥,该密钥可以存储

https://developers.facebook.com/docs/facebook-login/android

在这里。现在它将可以工作。

对我有用,希望也对您有用。

答案 14 :(得分:0)

我的问题实际上是使用哈希键,它无效。

我有完全相同的问题,很难诊断。原因是Facebook在首次登录时没有检查哈希密钥,看起来密钥是正确的,但实际上并非如此。其次,错误信息只是一种独特性。第三是决议:尝试以下链接,它帮助了我。

Better instructions to generate a valid hash key

答案 15 :(得分:0)

我遇到了同样的问题。我完全定义了我的keyhashes,仍然面临同样的问题。我第一次无法登录。

解决我的问题是:

  1. 转到您应用的信息中心here

  2. 在左侧窗格的“产品”标签下,确保已添加Facebook登录。如果没有,请将其添加到那里。

  3. 如果您的所有其他配置都已到位。之后它完美无缺。

答案 16 :(得分:0)

我在Redmi Note 3上遇到了同样的问题。在三星上测试过。没问题。不知道Redmi是否具体。

答案 17 :(得分:0)

  1. 从Facebook(帐户)的用户设置中删除应用。

  2. 卸载该应用。

  3. 使用发行版或新的调试密钥库获取新哈希。使用此命令:

    keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64
    
  4. 在Facebook信息中心添加新哈希。