簡體   English   中英

無法在Facebook登錄android中獲取電子郵件,性別和dob

[英]unable to get email and gender and dob in Facebook login android

我在我的應用程序中使用了最新的Facebook sdk,我只能獲取名稱和ID,但這里沒有其他內容,這是我的代碼

enter code here
fb_login.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v)
        {
            onFblogin();
        }
    });
   // Private method to handle Facebook login and callback
private void onFblogin()
{
    // Set permissions
    LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile","email","user_birthday","user_about_me"));

    LoginManager.getInstance().registerCallback(callbackmanager,
            new FacebookCallback<LoginResult>() {
                @Override
                public void onSuccess(LoginResult loginResult) {

                    System.out.println("Success");
                     GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
                                @Override
                                public void onCompleted(JSONObject json, GraphResponse response) {
                                    if (response.getError() != null) {
                                        // handle error
                                        System.out.println("ERROR");
                                    } else {
                                        System.out.println("Success");
                                        try {
                                            String jsonresult = String.valueOf(json);
                                            System.out.println("JSON Result" + jsonresult);
                                            String id = json.getString("id");
                                            String email = json.getString("email");
                                            //String name = json.getString("name");
                                            //String dob = json.getString("birthday");
                                            //String gender = json.getString("gender");
                                            //String about = json.getString("about");
                                        } catch (JSONException e) {
                                            e.printStackTrace();
                                        }


                                    }
                                }

                            }).executeAsync();

                }

                @Override
                public void onCancel() {
                    Log.d("Tag on cancel","On cancel");
                }

                @Override
                public void onError(FacebookException error) {
                    Log.d("Tag on error",error.toString());
                }
            });
}

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

    callbackmanager.onActivityResult(requestCode, resultCode, data);
}

我的代碼中缺少什么嗎? 任何幫助,將不勝感激。

您需要請求要返回的每個字段。

查看答案

//Callback registration
    LoginManager.getInstance().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 {

                                fb_id = object.getString("id");

                                fb_gender = object.getString("gender");

                                JSONObject obj1 = object.getJSONObject("picture");
                                JSONObject obj2 = obj1.getJSONObject("data");


                                fb_name = object.getString("name");

                                JSONObject obj = object.getJSONObject("age_range");
                                fb_age = obj.getString("min");


                            } catch (JSONException e) {

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

        }

        @Override
        public void onCancel() {
            // Do Nothing
        }

        @Override
        public void onError(FacebookException exception) {
            // Do Nothing
            Log.e("exception", "->" + exception);
        }
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM