簡體   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