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

Posted

技术标签:

【中文标题】登录错误:将您登录到此应用程序时出错。请稍后再试【英文标题】:Login Error: There is an error in logging you into this application. Please try again later 【发布时间】:2016-12-27 08:25:45 【问题描述】:

我收到此错误。当我尝试使用 facebook 登录我的应用程序时。 当我第一次进行身份验证时,它会正常工作。在我卸载我的应用程序并现在尝试使用 Facebook 登录后,我收到此错误。

另一个问题:在 device1 中进行身份验证并尝试在 device2 上使用 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();
                         
                    
                
            
        );

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

重现步骤

    启动应用登录 Facebook Authenticate FB profile。

    卸载应用并重新安装。

    现在尝试使用 Facebook 登录。

    会出现上述错误。因为我们已经通过身份验证,所以需要访问 fb 个人资料。但在这里我们遇到了问题。 此处未显示已通过身份验证的页面。 我在小米红米 Note 3 设备上使用 Native FB 应用程序

【问题讨论】:

这似乎是 facebook SDK 的一个错误。自过去几天以来,许多开发人员都面临同样的问题developers.facebook.com/bugs/297086380683342 我明白了。删除应用程序似乎工作一次,然后错误再次发生。 @Patrick ,是的,删除应用程序很好。我已经在我的问题中提到了。但这不是一个永久的解决方案。在这种情况下,我们无法告诉用户删除。 今天早上发生了同样的问题,我的客户现在要踢我了。 没有还没有解决。我在developers.facebook.com/bugs/297086380683342中附上了屏幕投屏 【参考方案1】:

我从其他帐户登录时收到此错误。当我使用开发者帐户登录时,我收到此错误Facebook Login: "The application has disabled the Oauth client flow for Facebook integration" 通过从 facebook 开发者帐户->myApp->products-> Facebook 登录

启用客户端 Oauth 登录解决了这个问题

【讨论】:

【参考方案2】:

在我们的例子中,我们使用 expo 应用程序,它不支持登录成功后重定向到应用程序。我们需要通过指定行为将配置设置为不打开 facebook 应用程序,而是打开嵌入式浏览器或手机浏览器。

Facebook.logInWithReadPermissionsAsync(
  permissions: [
    "public_profile",
    "email",
    "user_birthday",
    "user_hometown",
    "user_location",
  ],
  behavior: "web"
)

希望它对某人有所帮助,我们已经浪费了很多时间来解决这个问题:)

【讨论】:

【参考方案3】:

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

【讨论】:

【参考方案4】:

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

我们可以使用以下命令创建哈希键,并在 Settings-> Basic -> Android HashKeys 下更新相同的here

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

如果需要,您可以使用以下命令找到您的密钥库的 Relase Key Alias:

keytool -list -keystore ADD_UR_KEYSTORE_PATH_HERE

我也遇到过这样的问题失败的错误。解决方法如下:

    转到发布管理here

    选择发布管理 → 应用签名

    您可以看到十六进制格式的 SHA1 密钥应用签名证书。

    以十六进制格式复制 SHA1 并将其转换为 base64 格式,您可以使用 link 来做到这一点,而无需 SHA1:部分十六进制。

    转到 Facebook 开发者控制台并在

    中添加密钥(转换为 base 64 后)

    设置 → 基本 → 密钥哈希

【讨论】:

非常感谢,你拯救了我的一天 我的问题是,它在某些设备上工作,而在其他设备(三星、红米)上不工作。将密钥放入开发者控制台后,特定设备(三星、红米)的应用程序崩溃 我的应用尚未发布,仍在开发中。我正在创建发布版本,还创建发布密钥库并使用发布密钥库生成 sha1 哈希密钥。但是我仍然无法登录,如果安装了 Facebook 应用程序,没有来自网络登录对话框的 facebook 应用程序它的工作。请帮我解决它。 @SumiSadic 我是否也必须将 upload-keystore.jks 文件放入 app 文件夹中? 好朋友!【参考方案5】:

回答

只是把它扔给仍然遇到这个问题的人。 我通过 keytool 创建的哈希值在某种程度上是不正确的。我通过执行以下操作修复了它:

如果您已经将应用上传到 Playstore 并启用了“Google Play 应用签名”,则有一个解决方案(至少这对我有用):

    登录谷歌Play Console 点击你想要哈希的应用 现在,打开左侧的导航 在Release 下单击Setup > App integrityApp signing certificate下复制SHA-1证书指纹 转到http://tomeko.net/online_tools/hex_to_base64.php 将 SHA-1 粘贴到第一个字段中 复制Output (base64)下输入字段中的文本 现在打开developer.facebook.com/apps 导航到应用的仪表板 (My Apps > Your App Name) 在左侧导航到Settings > Basic 将 Base64 文本粘贴到 Key Hashes

这应该可以解决问题。


更新

上述步骤应该仍然完全有效。

但是,如果您不想在该网站上粘贴您的密钥,则可以使用以下 步骤 6、7、8 的替代方法:

这里有一个单线 Node.js 命令来做同样的事情:

node -e 'console.log(Buffer.from(process.argv[1].split(":").map(hex => parseInt(hex, 16))).toString("base64"))' '5E:8F:16:06:2E:A3:CD:2C:4A:0D:54:78:76:BA:A6:F3:8C:AB:F6:25'

学分:mifi


【讨论】:

按照您提到的步骤解决了这个问题。非常感谢,您节省了我的时间:-) 这是解决我的问题的唯一答案。我正在执行 facebook 入门中告诉的步骤,但仍然失败。我多年来一直有这个问题,直到今天,唯一有效的代码是 base64 网站提供的十六进制代码。 你的回答解决了我这个顽固的 Facebook 错误问题【参考方案6】:
    生成 .apk 文件 打开一个存在 .apk 文件的终端 请记住,您必须生成两个单独的 SHA1 发布和调试的密钥。例如,只需运行以下命令 bedug.apk 和 release.apk 运行keytool -list -printcert -jarfile yourapkname.apk 你会得到

MD5: 00:00:A0:00:00:00:72:00:00:B9:00:00:00:3D:00:00

SHA1: 00:00:94:00:67:00:FA:00:4E:00:CE:80:00:1A:00:00:00:00:00: 00

SHA256: 00:00:00:34:00:00:00:00:00:00:00:00:00:00:00:00:56:00:F5: 00:00:49:00:4A:00:00:00:00:00:00:00:00

    复制SHA1打开http://tomeko.net/online_tools/hex_to_base64.php 过去十六进制字符串你的密钥散列将在输出(base64)时间> 复制您的 Key Hash 并在 developers.facebook.com 上添加您的应用设置

【讨论】:

谢谢@Rasheed Qureshi,尝试了所有方法,但你的方法救了我。【参考方案7】:

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

如何生成用于发布的密钥哈希。 打开 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="

【讨论】:

【参考方案8】:

FnnK.jpg

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

【讨论】:

最佳解决方案!完美运行。独立,如果用户有更新的 Facebook 应用程序或类似的问题【参考方案9】:

我参考这个,

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

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

它对我有用,希望对你也有用。

此命令可能不会为您提供最新的 keyhash。

keytool -exportcert -alias YOUR_RELEASE_KEY_ALIAS -keystore YOUR_RELEASE_KEY_PATH | openssl sha1 -二进制 | openssl base64

在应用程序运行并抛出上述错误时,在您的 android studio 的 Logcat 或 android 监视器中从 android studio 搜索“hash”获取最新或活动的 keyhash。你会得到不同的 keyhash 是活跃的。在您的控制台设置中粘贴此搜索到的 keyhash 后,您可能会登录到您的应用程序。

【讨论】:

【参考方案10】:

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

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

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

【讨论】:

【参考方案11】:

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

default_graph_version = v4.0

现在一切都恢复正常了。试试看吧。

【讨论】:

【参考方案12】:

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

生成哈希键的命令:

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

【讨论】:

【参考方案13】:

我遇到了同样的问题。

这是我的错误。

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

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

【讨论】:

这一定是个玩笑,同样的问题在这里,我通过你的解决方案解决了,谢谢!【参考方案14】:

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

【讨论】:

这是完美的答案,它发生了 如果本页列出的解决方案都不起作用,请尝试此解决方案:***.com/a/59316144/6667442【参考方案15】:

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

按照以下步骤操作:

    转到 Facebook 设置。

    删除您的应用。

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

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

    @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);
        
    
    

    在 Oncreate 方法中,调用 AccessToken:

    accessTokenTracker = new AccessTokenTracker() 
        @Override
        protected void onCurrentAccessTokenChanged(
                AccessToken oldAccessToken,
                AccessToken currentAccessToken) 
            // Set the access token using
            // currentAccessToken when it's loaded or set.
        
    ;
    
    // If the access token is available already assign it.
    accessToken = AccessToken.getCurrentAccessToken();
    
    if (accessToken != null && !accessToken.isExpired())
    
        GraphRequest request = GraphRequest.newMeRequest(accessToken, new GraphRequest.GraphJSONObjectCallback() 
            @Override
            public void onCompleted(JSONObject object, GraphResponse response) 
                if(null != object) 
                    try
                    
                        Intent i = new Intent(MainActivity.this, Feedback.class);
                        startActivity(i);
                        String email = object.getString("email");
                        String birthday = object.getString("birthday");
    
                    
                    catch (Exception ex)
                    
                        Toast.makeText(MainActivity.this, ex.toString(), Toast.LENGTH_SHORT).show();
                    
                 else 
                    // call your authentication process
    
                
            
        );
        Bundle parameters = new Bundle();
        parameters.putString("fields", "id,name,birthday,link");
        request.setParameters(parameters);
        request.executeAsync();
    
    

【讨论】:

我已经覆盖了访问跟踪器。但没有解决我的问题 第一次认证成功。当我现在卸载并安装时,现在尝试访问 Fb 登录 AccessToken.getCurrentAccessToken() 为空。现在,在 Redmi 设备和一些三星设备上也面临着问题。【参考方案16】:

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

    卸载应用程序。

    使用发布或新的调试密钥库获取新的哈希。使用这个命令:

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

    在 Facebook 仪表板上添加新哈希。

【讨论】:

有谁知道我是否应该在我在 facebook 上生成我的发布哈希键后删除我的旧调试哈希键? 更新新的哈希键后也有同样的问题【参考方案17】:

对我来说,问题出在哈希键上,它是无效的。

我遇到了完全相同的问题,而且很难诊断。原因是 Facebook 在第一次登录时没有检查哈希密钥,看起来密钥是正确的,但实际上不是。其次,错误信息简直是白痴。第三是解决方法:试试下面的链接,它对我有帮助。

Better instructions to generate a valid hash key

【讨论】:

【参考方案18】:

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

我们将预计解决方案:3 天内

【讨论】:

你确定吗?这个问题现在解决了吗? 是的,它已在该实例上解决。但现在不确定。如果您有任何问题,请在 developers.facebook.com/bugs 中提出错误【参考方案19】:

我遇到了同样的问题。我已经完美地定义了我的密钥哈希,但仍然面临同样的问题。我第一次登录也无法登录。

我的问题的解决方案是:

    转到您应用的仪表板here

    在左侧窗格的产品选项卡下,确保您已添加 Facebook 登录。如果没有,请在此处添加。

如果您的所有其他配置都已到位。之后就完美运行了。

【讨论】:

【参考方案20】:

我在我的 Redmi Note 3 上遇到了同样的问题。在三星上测试过。没问题。想知道它是否是 Redmi 特定的。

【讨论】:

是的,它会出现在 Redmi Note 3 中。我在 Nexus 中检查了它的工作正常 我在 Redmi Note3 上测试 :) 我认为这与Redmi ROM或某些设置有关。 Miui 论坛挂了。试图允许在 facebook 的安全设置中弹出窗口。没用。 我正在尝试从小米笔记获取控制台和服务器日志。英文论坛 en.miui.com 已关闭。不是 fb 连接错误,而是 redmi 错误。 :(【参考方案21】:

我也面临这个问题。在 Facebook 上更新您的密钥哈希

【讨论】:

我已经更新了密钥哈希。对你来说,更新密钥哈希后问题解决了吗? 但对我来说没有解决。检查此链接developers.facebook.com/bugs/297086380683342 这里有很多成员面临同样的问题。我提供了重现的步骤,请按照重现的步骤操作。 你用的是哪个sdk版本 之前:com.facebook.android:facebook-android-sdk:4.0.0 现在:com.facebook.android:facebook-android-sdk:4.14.1 在两个 SDK 版本中都有问题 我刚刚评论了上面@Naveen 链接的错误。 “其他遇到此错误的人是否必须输入密码才能获取他们的调试密钥哈希?我在按照 Facebook 教程使用的 Mac 上不必这样做。然后我回到家,我抬头看了看如何在 Linux 上获取哈希。这次我必须输入密码“android”,然后将此密钥放入 Facebook 上的开发者控制台后,我能够正确使用登录/注销功能。”

以上是关于登录错误:将您登录到此应用程序时出错。请稍后再试的主要内容,如果未能解决你的问题,请参考以下文章

如何解决“登录错误:登录此应用程序时出错。请稍后重试。” Facebook登录错误

在 paypal 集成时,我输入了电子邮件和密码,我收到“登录失败 -> 系统错误。请稍后再试对话框”

Onenote2013在同步时出现:抱歉,同步时出错.将稍后再试. (错误代码: 0xE4020017)

iOS 分享“出现错误,请稍后再试。”

新浪微博登录总显示出错了,出错代码为10001

FB_Graph:发生错误。请稍后再试