Android 首次使用facebook登录应用程序时,是否会重定向到应用程序注册页面?

Android 首次使用facebook登录应用程序时,是否会重定向到应用程序注册页面?,android,facebook,facebook-graph-api,android-intent,facebook-login,Android,Facebook,Facebook Graph Api,Android Intent,Facebook Login,当用户首次使用facebook登录按钮登录到我的应用程序时, 我希望它将他们重定向到FB用户的应用注册/注册活动(输入用户名/密码等),下次他们再次使用FB登录时, 应用程序将检查服务器是否存在FB用户Acc?&跳过FB的注册活动并重定向到主登录页活动 我的问题是,如果FB用户已经注册或没有注册,我应该将代码放在哪里检查DB 是在: onActivityResult(int requestCode, int resultCode, Intent data) {}? 我知道返回数据的意图,但不知

当用户首次使用facebook登录按钮登录到我的应用程序时, 我希望它将他们重定向到FB用户的应用注册/注册活动(
输入用户名/密码
等),下次他们再次使用FB登录时, 应用程序将检查服务器是否存在FB用户Acc?&跳过FB的注册活动并重定向到主登录页活动

我的问题是,如果FB用户已经注册或没有注册,我应该将代码放在哪里检查DB

是在:

onActivityResult(int requestCode, int resultCode, Intent data) {}?
我知道返回数据的意图,但不知道如何访问它,因为我不知道额外密钥的名称…或者有其他方法获取它吗

我已经查看了facebook开发页面,但是我很困惑,不理解它

我目前正在使用facebook登录按钮进行此操作

有人能给我一个简单的代码结构吗

更新: 下面是我的
FacebookCallback()
的样子:

private FacebookCallback<LoginResult> mCallBack = new FacebookCallback<LoginResult>() {
    @Override
    public void onSuccess(LoginResult loginResult) {

        progressDialog.dismiss();

        // App code
        GraphRequest request = GraphRequest.newMeRequest(
                loginResult.getAccessToken(),
                new GraphRequest.GraphJSONObjectCallback() {
                    @Override
                    public void onCompleted(
                            JSONObject object,
                            GraphResponse response) {

                        Log.e("response: ", response + "");
                        try {

                            //=================================================================//
                            // Create User Code
                            System.out.println("FB successful login");
                            user = new User();

                            //user.facebookID = object.getString("id").toString();
                            user.userID = object.getString("id").toString();
                            user.email = object.getString("email").toString();
                            user.name = object.getString("name").toString();
                            user.gender = object.getString("gender").toString();

                            PrefUtils.setCurrentUser(user, MainLoginActivity.this);

                            //STOP, if NOT Registered
                            //Function to check if email exist in DB
                            facebookCheckEmail(user.email);

                            if(fbresponse.equals("ok")) {

                                //=================================================================//
                                // Start MainActivity Code
                                Intent intent=new Intent(MainLoginActivity.this, MainActivity.class);

                                startActivity(intent);

                                Toast.makeText(MainLoginActivity.this, "Welcome " + user.name, Toast.LENGTH_LONG).show();

                                finish();

                            } else if(fbresponse.equals("no")){

                                //=================================================================//
                                // Pop up Dialog to Register & goto FB Register Activity


                                AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext());

                                builder.setTitle("You Have Not Yet Registered");
                                builder.setMessage("You have not yet registered using Facebook, register now?");

                                builder.setPositiveButton("YES", new DialogInterface.OnClickListener() {

                                    public void onClick(DialogInterface dialog, int which) {

                                        // Goto FB Register Activity

                                        dialog.dismiss();
                                    }

                                });

                                builder.setNegativeButton("NO", new DialogInterface.OnClickListener() {

                                    @Override
                                    public void onClick(DialogInterface dialog, int which) {
                                        // Do nothing
                                        dialog.dismiss();
                                    }
                                });

                                AlertDialog alert = builder.create();
                                alert.show();


                            }


                            //=================================================================//
                            // Start MainActivity Code
                            //Intent intent=new Intent(MainLoginActivity.this, MainActivity.class);

                            //startActivity(intent);

                            //Toast.makeText(MainLoginActivity.this, "Welcome " + user.name, Toast.LENGTH_LONG).show();

                            //finish();



                        }catch (Exception e){
                            e.printStackTrace();
                            System.out.println("FB failed login = " + e.toString());
                        }


                    }

                });

        Bundle parameters = new Bundle();
        parameters.putString("fields","id,name,email,gender,birthday");
        request.setParameters(parameters);
        request.executeAsync();
    }

    @Override
    public void onCancel() {
        progressDialog.dismiss();

    }

    @Override
    public void onError(FacebookException e) {
        progressDialog.dismiss();
        System.out.println("Facebook error " + e.toString());
        Toast.makeText(MainLoginActivity.this, "Something goes wrong.." + e.toString(), Toast.LENGTH_LONG).show();
    }
};

facebookCheckEmail
是一个GSONRequest,它接受一个
email
参数,并将字符串变量
fbresponse
设置为
ok
no
,我的问题是
facebookCheckEmail()中设置为
fbresponse
的值
未更新,当我在
FacebookCallback()中选中它时,可以使用callbackmanager获取
null

LoginManager.getInstance().registerCallback(mCallbackManager,
                new FacebookCallback<LoginResult>() {
                    @Override
                    public void onSuccess(LoginResult loginResult) {
                        Log.i("NIC", "Success Login");

                        //Call Graph API here to retrieve user's data
                        //Call to you Backend to check if user is registered, then do your stuff here

                    }

                    @Override
                    public void onCancel() {
                        Toast.makeText(General_login_menu.this, "Login Cancel", Toast.LENGTH_LONG).show();
                        Log.i("NIC", "Cancel Login");
                    }

                    @Override
                    public void onError(FacebookException exception) {
                        Toast.makeText(General_login_menu.this, exception.getMessage(), Toast.LENGTH_LONG).show();
                        Log.i("NIC", "Error Login");
                    }
                });
LoginManager.getInstance().registerCallback(mCallbackManager,
新建FacebookCallback(){
@凌驾
成功时公共无效(LoginResult LoginResult){
Log.i(“NIC”,“成功登录”);
//调用图API来检索用户的数据
//打电话给后端,检查用户是否已注册,然后在此处执行操作
}
@凌驾
公开作废{
Toast.makeText(常规登录菜单。此“登录取消”,Toast.LENGTH.show();
Log.i(“NIC”,“取消登录”);
}
@凌驾
public void onError(facebook异常){
Toast.makeText(General\u login\u menu.this,exception.getMessage(),Toast.LENGTH\u LONG.show();
Log.i(“NIC”,“错误登录”);
}
});
LoginManager.getInstance().registerCallback(mCallbackManager,
                new FacebookCallback<LoginResult>() {
                    @Override
                    public void onSuccess(LoginResult loginResult) {
                        Log.i("NIC", "Success Login");

                        //Call Graph API here to retrieve user's data
                        //Call to you Backend to check if user is registered, then do your stuff here

                    }

                    @Override
                    public void onCancel() {
                        Toast.makeText(General_login_menu.this, "Login Cancel", Toast.LENGTH_LONG).show();
                        Log.i("NIC", "Cancel Login");
                    }

                    @Override
                    public void onError(FacebookException exception) {
                        Toast.makeText(General_login_menu.this, exception.getMessage(), Toast.LENGTH_LONG).show();
                        Log.i("NIC", "Error Login");
                    }
                });