Android Facebook 授权 - 安装官方 Facebook 应用后无法登录 [英] Android Facebook authorization - can not log in when official Facebook app is installed

查看:37
本文介绍了Android Facebook 授权 - 安装官方 Facebook 应用后无法登录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要登录 Facebook 并获取相同的字段,例如电子邮件等.我使用 Facebook SDK,并在 developer.facebook 中设置了我的 Android 密钥哈希并设置了为 Android SSO 配置".在模拟器和一些设备中,应用程序运行良好.

I need to log in to Facebook and get same fields like email, etc. I use the Facebook SDK, and I set my Android key Hash in developers.facebook and set "Configured for Android SSO". In the simulator and some devices the application works fine.

但是,如果设备上安装了官方 Facebook 应用程序,我的应用程序将无法运行:我按下登录按钮,但我没有看到要求输入密码和登录信息的网页视图对话框.看起来堆栈溢出问题中的问题将 facebook.authorize 与 Android SDK 一起使用不会调用 onActivityResult或堆栈溢出问题Android Facebook API 单点登录?,但我不明白如何解决

But if the official Facebook application is installed on the device, my application does not work: I push the login button, but I not see a dialog with a web-view were my password and login are asked for. It looks like the problem in Stack Overflow question Using facebook.authorize with the Android SDK does not call onActivityResult or Stack Overflow question Android Facebook API single sign-on?, but I can not understand how to resolve it.

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    this.facebookConnector.getFacebook().authorizeCallback(requestCode, resultCode, data);
}

public void getAccessToken() {
    SessionEvents.AuthListener listener = new SessionEvents.AuthListener() {
        @Override
        public void onAuthSucceed() {
            setupAccessToken(facebookConnector.getFacebook().getAccessToken());
        }

        @Override
        public void onAuthFail(String error) {
            Toast.makeText(getApplicationContext(), getString(R.string.error_login), Toast.LENGTH_SHORT).show();
        }
    };

    SessionEvents.addAuthListener(listener);
    facebookConnector.login();
}

facebookConnector 代码

public class FacebookConnector {
    public void login() {
        if (!facebook.isSessionValid()) {
            facebook.authorize(this.activity, this.permissions, new LoginDialogListener());
        }
    }

    private final class LoginDialogListener implements DialogListener {
        public void onComplete(Bundle values) {
            SessionEvents.onLoginSuccess();
        }

        public void onFacebookError(FacebookError error) {
            SessionEvents.onLoginError(error.getMessage());
        }

        public void onError(DialogError error) {
            SessionEvents.onLoginError(error.getMessage());
        }

        public void onCancel() {
            SessionEvents.onLoginError("Action Canceled");
        }
    }
}

推荐答案

请更新您的应用程序的以下代码.它将解决您的问题.

Please update the below code of your application. It will solve your problem.

public void loginAndPostToWall() {
    facebook.authorize(this, PERMISSIONS, Facebook.FORCE_DIALOG_AUTH,
            new LoginDialogListener());
}

这篇关于Android Facebook 授权 - 安装官方 Facebook 应用后无法登录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆