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

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

问题描述

我需要登录到Facebook和获得,如电子邮件,等等。我使用Facebook SDK相同的字段,并设置我的Andr​​oid密钥散列在developers.facebook并设置配置为Android SSO。在模拟器和一些设备的应用程序工作正常。

但是,如果官方Facebook应用程序安装在设备上,我的应用程序无法正常工作:我按下登录按钮,但我没有看到一个网络视图中的对话是我的密码和登录的要求。它看起来像在堆栈溢出问题,该问题的 使用facebook.authorize了Android SDK不叫onActivityResult 的或者堆栈溢出问题的 Android的Facebook的API,单点登录? 的,但我不知道如何解决吧。

我的code

  @覆盖
保护无效onActivityResult(INT申请code,INT结果code,意图数据){
    。this.facebookConnector.getFacebook()authorizeCallback(要求code,因此code,数据);
}

公共无效getAccessToken(){
    SessionEvents.AuthListener监听器=新SessionEvents.AuthListener(){
        @覆盖
        公共无效onAuthSucceed(){
            setupAccessToken(facebookConnector.getFacebook()getAccessToken());
        }

        @覆盖
        公共无效onAuthFail(字符串错误){
            Toast.makeText(getApplicationContext(),的getString(R.string.error_login),Toast.LENGTH_SHORT).show();
        }
    };

    SessionEvents.addAuthListener(听众);
    facebookConnector.login();
}
 

facebookConnector code

 公共类FacebookConnector {
    公共无效的登录(){
        如果(!facebook.isSessionValid()){
            facebook.authorize(this.activity,this.permissions,新LoginDialogListener());
        }
    }

    私人final类LoginDialogListener实现DialogListener {
        公共无效的onComplete(束值){
            SessionEvents.onLoginSuccess();
        }

        公共无效onFacebookError(FacebookError错误){
            SessionEvents.onLoginError(error.getMessage());
        }

        公共无效onerror的(DialogError错误){
            SessionEvents.onLoginError(error.getMessage());
        }

        公共无效OnCancel的(){
            SessionEvents.onLoginError(行动取消);
        }
    }
}
 

解决方案

请更新您的应用程序的下方code。这将解决您的问题。

 公共无效loginAndPostToWall(){
    facebook.authorize(这,权限,Facebook.FORCE_DIALOG_AUTH,
            新LoginDialogListener());
}
 

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.

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.

My code

@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 code

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天全站免登陆