2017-09-16 1 views
0

그래프 API를 통해 facebook에서 user_id, 이름 & 이메일을 보내려고합니다. 그러나 저에게 전자 우편을 보내지 않기. 나는이 같은 기능을 사용하고 있습니다 :Facebook 그래프 api가 안드로이드의 모든 데이터를 보내지 않습니다.

void callGraphApi() { 
     accessToken = AccessToken.getCurrentAccessToken(); 

     GraphRequest request = GraphRequest.newMeRequest(
       accessToken, 
       new GraphRequest.GraphJSONObjectCallback() { 
        @Override 
        public void onCompleted(
          JSONObject object, 
          GraphResponse response) { 

         tv_response.setText(response.toString()); 
        } 
       }); 
     Bundle parameters = new Bundle(); 
     parameters.putString("fields", "id,name,email"); 
     request.setParameters(parameters); 
     request.executeAsync(); 
    } 

내가에만이 같은 응답을 받고 있어요 :

{"id":"1480750682018443","name":"Ogwemuvwem Ossas","gender":"male"}, error: null} 

모든 솔루션을?

+0

확장 된 권한으로 전자 메일 주소를 사용하고 있습니까? –

+0

내 업데이트 된 답변보기 –

답변

0

귀하의 페이스 북 개발자 대시 보드에 로 이동하십시오. 응용 리뷰 거기에 귀하의 데이터 요청 권한을 볼 수 있습니다. 이메일 권한이 목록에없는 경우

enter image description here

당신은 같은 페이지에 제출 시작 버튼을 클릭하여 추가해야합니다. 페이스 북의 문서에서

enter image description here

:

주, 당신은이 당신이 이메일 주소를 얻을 것이다 보장되지 이메일 권한을 요청할 경우에도 마찬가지입니다. 예를 들어 누군가 이메일 주소 대신 전화 번호로 Facebook에 가입 한 경우 이메일 필드가 비어있을 수 있습니다.

+0

고마워요 :) 고정 :) –

+0

좋은 소리 ... 행복한 코딩 :) –

0

이 새로운 API를 사용해 볼 수 있습니다. 이처럼 ArrayList에서 권한을 전달할 수 있습니다.

loginButton.setReadPermissions(Arrays.asList("public_profile", "email")); 
loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() { 
    @Override 
    public void onSuccess(LoginResult loginResult) { 
     getUserDetails(loginResult); 
    } 

    @Override 
    public void onCancel() { 
     // App code 
    } 

    @Override 
    public void onError(FacebookException exception) { 
     // App code 
    } 
}); 

이와 같이 LoginResult를 처리 할 수 ​​있습니다.

// Get Facebook login results 
    protected void getUserDetails(LoginResult loginResult) { 
     GraphRequest data_request = GraphRequest.newMeRequest(
       loginResult.getAccessToken(), 
       new GraphRequest.GraphJSONObjectCallback() { 
        @Override 
        public void onCompleted(JSONObject json_object, GraphResponse response) { 

         Log.i("onfbCompleted: ", json_object.toString());      

        } 

       }); 
     Bundle permission_param = new Bundle(); 
     permission_param.putString("fields", "id,name,email,picture.width(120).height(120)"); 
     data_request.setParameters(permission_param); 
     data_request.executeAsync(); 

    } 

나는 그것이 당신을 도울 것이라고 희망한다. :)

+0

'CallbackManager callbackManager = CallbackManager.Factory.create();'를 호출해야합니다. Oncreate에서 fb sdk –

관련 문제