繁体   English   中英

获取用户信息时,Android Facebook sdk GraphRequest返回null

[英]Android Facebook sdk GraphRequest returns null when get user info

我正在尝试使用Facebook API允许用户登录我的应用,登录操作成功完成,并且我获得了访问令牌,但是当我使用GraphRequest获取用户信息时,它是响应并且对象返回null,我我在android开发中完全是新手。 这是我的代码:

    public class SignIn extends Fragment {

        private LoginButton loginButton;
        private CallbackManager callbackManager;
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState)
        {
            View v =  inflater.inflate(R.layout.fragment_sign_in, container, false);
            Button button = (Button) v.findViewById(R.id.button_signin);
            button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Intent i = new Intent(getActivity(),Home.class);
                    startActivity(i);
                    getActivity().finish();
                }
            });

            callbackManager = CallbackManager.Factory.create();
            loginButton = (LoginButton) v.findViewById(R.id.facebook_button);
            loginButton.setReadPermissions("email");
            loginButton.setFragment(this);
            loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
                @Override
                public void onSuccess(LoginResult loginResult) {
                    GraphRequest request = GraphRequest.newMeRequest(
                            AccessToken.getCurrentAccessToken(),
                            new GraphRequest.GraphJSONObjectCallback() {
                                @Override
                                public void onCompleted(JSONObject object, GraphResponse response) {
=                                    try {
                                        Log.d("id",object.getString("id")) ;
                                        Log.d("email",object.getString("email")) ;

                                    } catch (JSONException e) {
                                        e.printStackTrace();
                                        Toast.makeText(getActivity().getApplicationContext(),e.getMessage(),Toast.LENGTH_LONG).show();
                                    }
                                }
                            });
                    Bundle parameters = new Bundle();
                    parameters.putString("fields", "id,name,link");
                    request.setParameters(parameters);
                    request.executeAsync();
                }

                @Override
                public void onCancel() {
                }

                @Override
                public void onError(FacebookException exception) {
                }
            });
            return v ;
        }

        @Override
        public void onActivityResult(int requestCode, int resultCode, Intent data)
        {
            callbackManager.onActivityResult(requestCode, resultCode, data);
        }
    }

build.gradle(项目)(如果需要)

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.3'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
        mavenCentral()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

我发现我忘了在清单中添加这个:

<activity android:name="com.facebook.FacebookActivity"
    android:configChanges=
        "keyboard|keyboardHidden|screenLayout|screenSize|orientation"
    android:label="@string/app_name" />

暂无
暂无

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

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