Facebook帐户套件OnActivityResult无法获取正确的数据

时间:2017-06-22 13:00:00

标签: android facebook login onactivityresult account-kit

我正在使用Facebook帐户套件来验证手机号码。一些我如何在少数情况下得到系统问题。请稍后再试

即使我没有在onActivityResult上得到任何东西,因为再次回来让我进入来自SDK本身的手机号码屏幕。

以下是ActivityResult的代码

  @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);



        if (requestCode == 99) { // confirm that this response matches your request
            AccountKitLoginResult loginResult = data.getParcelableExtra(AccountKitLoginResult.RESULT_KEY);
            String toastMessage;
            if (loginResult.getError() != null) {
                AccountKitError error = loginResult.getError();
                try{
                    int code  = error.getDetailErrorCode();
                    String message = error.getUserFacingMessage();
                    AccountKitError.Type type = error.getErrorType();


                    String str_error = "Code : "+code+"\ndescription : "+message+"\ntype : "+type.name()
                            +"\ntype_message : "+type.getMessage()+"\ntype_code : "+type.getCode();
                    showAlert(str_error);
                }catch (Exception e){
                }
                Toast.makeText(getApplicationContext(),"Login Error",Toast.LENGTH_SHORT).show();

            } else if (loginResult.wasCancelled()) {
                Toast.makeText(getApplicationContext(),"Login Canceled",Toast.LENGTH_SHORT).show();

            } else {

                Toast.makeText(getApplicationContext(),"Logged IN",Toast.LENGTH_SHORT).show();

            }

        }

    }

但它总是去登录取消。 如下链接 https://developers.facebook.com/docs/reference/android/4.11/interface/AccountKitLoginResult/ AccountKitLoginResult不再可用,但仍然在概述中建议使用相同的。

任何人都有同样的问题吗?

1 个答案:

答案 0 :(得分:1)

AccountKitLoginResult实际上是可用的,它是获取数据的正确方法。我想你只是在查看较旧的文档。这是目前的一个: https://developers.facebook.com/docs/reference/androidsdk/current/AccountKit/com/facebook/accountkit/accountkitloginresult.html/

您的应用是否直接从输入电话号码屏幕进入错误屏幕而不提供输入验证密钥的选项?如果是这样,那么onActivityResult不应该被调用,因为存在系统错误。以下是关于错误可能来自何处的一些建议:

  1. 检查AndroidManifest.xml中是否有以下所有3个元数据集:com.facebook.accountkit.ApplicationName,com.facebook.sdk.ApplicationId,com.facebook.accountkit.ClientToken
  2. 确保这些元数据的值实际上是@string / ...键,而不仅仅是直接值。我也在我的第一个accountkit应用程序上犯了这个错误,并试图实现这一点。
  3. 我在我的应用程序中犯的另一个大错误是我已经切换了应用程序ID和应用程序名称,它只是告诉我"发生了系统错误"所以我花了一段时间才意识到我为那些
  4. 发送错误的值
  5. 另外,只需检查是否在"产品"下安装了AccountKit。应用程序设置中的选项卡,并在您的清单上传递正确的客户端令牌。
  6. 如果您仍然无法修复它,也许您可​​以发布AndroidManifest的部分内容和onLogin方法(您设置AccountKitConfiguration)以提供更多上下文