简体   繁体   English

使用FB SDK允许用户登录但屏幕停留在加载中

[英]Using FB sdk to let user login but screen stuck at Loading

I'm using the FB Sdk to let a user login through FB but on clicking the Continue with Facebook button the screen is getting stuck at Loading... Below is the screenshot. 我正在使用FB Sdk来让用户通过FB登录,但是单击“ 继续使用Facebook”按钮时,屏幕将停留在“正在加载...”下面。

在此处输入图片说明

This is the code I'm using https://stackoverflow.com/a/29379794 这是我正在使用的代码https://stackoverflow.com/a/29379794

What could be the reason that the screen is stuck at Loading? 屏幕卡在加载中可能是什么原因?

Use this below code for Facebook Login : 将以下代码用于Facebook登录:

login.setLoginBehavior(LoginBehavior.WEB_ONLY);
        login.setReadPermissions(Arrays.asList(
                "public_profile", "email", "user_birthday", "user_friends"));
        login.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
            @Override
            public void onSuccess(LoginResult loginResult) {

            Log.e("ACESS_ON_SUCCESS---", "" + loginResult.getAccessToken());
            token = loginResult.getAccessToken();

            GraphRequest request = GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {


                @Override
                public void onCompleted(JSONObject object, GraphResponse response) {
                    Log.e("ACESS_ON_COMPLETED--", "" + AccessToken.getCurrentAccessToken());

                    Log.e("FaceBook Response", response.toString());

                    String responseStr = response.toString();
                     sharedpreferences = App.getInstance().getDefaultAppSharedPreferences();
                      editor = sharedpreferences.edit();

                    try {
                        if (responseStr.contains("\"id\"")) {
                            id = object.getString("id");
                            Log.e("USER-ID = ", id);
                            editor.putString(SharedPreferencesConstants.facebookId,id);
                        }

                        if (responseStr.contains("\"name\"")) {
                            name = object.getString("name");
                            Log.e("NAME = ", name);
                            editor.putString(SharedPreferencesConstants.userName,name);
                        }

                        if (responseStr.contains("\"email\"")) {
                            email = object.getString("email");
                            Log.e("EMAIL = ", email);
                            editor.putString(SharedPreferencesConstants.userEmail,email);                            }

                        if (responseStr.contains("\"birthday\"")) {
                            birthday = object.getString("birthday");
                            Log.e("BIRTHDAY = ", birthday);
                            editor.putString(SharedPreferencesConstants.userFbBirthday,birthday);
                            String strYear = birthday.substring(6, 10);
                            Log.e("BIRTHDAY LEN", strYear);
                            editor.putString(SharedPreferencesConstants.userFbBirthdayYear,strYear);
                        }



                        //EXTRACT PICTUREOBJECT  FROM MAINJSONOBJECT::::---
                        if (responseStr.contains("\"picture\"")) {
                            JSONObject pictureObject = object.getJSONObject("picture");
                            Log.e("PICTUREOBJ FRM MAINOBJ", "" + pictureObject.toString());

                            //EXTRACT  DATAOBJECT FROM PICTUREOBJECT::::---
                            JSONObject dataObject = pictureObject.getJSONObject("data");

                            //EXTRACT PROFILE_PIC  FROM DATAOBJECT::::---
                             profile_pic = dataObject.getString("url");

            Bundle params = new Bundle();
            parameters.putString("limit", total_friends_count);
            request1.setParameters(params);
            request1.executeAsync();*/
        }

        @Override
        public void onCancel() {
            Log.e("Error","canceled");
        }

        @Override
        public void onError(FacebookException error) {
            Log.e("Error",error.getMessage());
            Toast.makeText(WelcomeActivity.this, "FB Integration Failed", Toast.LENGTH_SHORT).show();
        }
    });

}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM