Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Facebook登录失败,安装了Facebook应用程序_Android_Facebook_Login - Fatal编程技术网

Android Facebook登录失败,安装了Facebook应用程序

Android Facebook登录失败,安装了Facebook应用程序,android,facebook,login,Android,Facebook,Login,我是android开发新手。我已经下载了facebook sdk 3.0.1,并使用示例代码登录。问题是,如果安装了facebook应用程序,身份验证就会失败。 (否则就可以正常工作了) 按下登录按钮后,我进入onActivityResult,状态为CLOSED\u LOGIN\u FAILED。 当然,我没有输入密码,它是通过facebook的应用程序自动完成的,facebook应用程序已登录并正常工作。 我找不到解决办法。。 请帮帮我:) 这是我的代码: @Override protecte

我是android开发新手。我已经下载了facebook sdk 3.0.1,并使用示例代码登录。问题是,如果安装了facebook应用程序,身份验证就会失败。 (否则就可以正常工作了) 按下登录按钮后,我进入onActivityResult,状态为CLOSED\u LOGIN\u FAILED。 当然,我没有输入密码,它是通过facebook的应用程序自动完成的,facebook应用程序已登录并正常工作。 我找不到解决办法。。 请帮帮我:)

这是我的代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    instance = this;
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    buttonLoginToFacebook = (Button) findViewById(R.id.buttonLoginToFacebook);
    tvWellcome = (TextView) findViewById(R.id.tvWellcome);

    Settings.addLoggingBehavior(LoggingBehavior.INCLUDE_ACCESS_TOKENS);

    Session session = Session.getActiveSession();
    if (session == null) {
        if (savedInstanceState != null) {
            session = Session.restoreSession(this, null, statusCallback,
                    savedInstanceState);
        }
        if (session == null) {
            session = new Session(this);
        }
        Session.setActiveSession(session);
        if (session.getState().equals(SessionState.CREATED_TOKEN_LOADED)) {
            session.openForRead(new Session.OpenRequest(this)
                    .setCallback(statusCallback));
        }
    }

    updateView();
}

@Override
public void onStart() {
    super.onStart();
    Session.getActiveSession().addCallback(statusCallback);
}

@Override
public void onStop() {
    super.onStop();
    Session.getActiveSession().removeCallback(statusCallback);
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    Session.getActiveSession().onActivityResult(this, requestCode,
            resultCode, data);
    updateView();
}

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    Session session = Session.getActiveSession();
    Session.saveSession(session, outState);
}

private void updateView() {
    Session session = Session.getActiveSession();
    if (session.isOpened()) {
        Intent intent = new Intent(this, ScreenStartPage.class);
        startActivity(intent);
    } else {
        buttonLoginToFacebook.setOnClickListener(new OnClickListener() {
            public void onClick(View view) {
                onClickLogin();
            }
        });
    }
}

private void onClickLogin() {
    Session session = Session.getActiveSession();
    if (!session.isOpened() && !session.isClosed()) {
        session.openForRead(new Session.OpenRequest(this)
                .setCallback(statusCallback));
        updateView();
    } else {
        Session.openActiveSession(this, true, statusCallback);
    }
}


public void onClickLogout() {
    Session session = Session.getActiveSession();
    if (!session.isClosed()) {
        session.closeAndClearTokenInformation();
    }
}

private class SessionStatusCallback implements Session.StatusCallback {
    @Override
    public void call(Session session, SessionState state,
            Exception exception) {
        updateView();
    }
}

你是否在Facebook的应用程序设置dashbaord上设置了调试密钥哈希和完整类名?请参阅文档中的步骤5和6。

是的,我安装了,如果没有安装facebook应用程序,连接是否可以正常工作?感谢您的回复。我重新检查了开发者页面上的设置,显然包名不匹配。当我修复它时,我在尝试登录应用程序时从facebook收到一个错误,说密钥哈希不匹配。我复制了他们的密钥散列,现在终于成功了!!谢谢你,阿米尔!Hey@Amir Naor我尝试用UILifeCycleHelper实现FB登录流,在某些情况下,
data
param通常有一个包含FB响应的字段
mMap
,该参数为空。为什么会发生这种情况?