2016-06-11 4 views
1

로그인 Facebook 계정으로 Android 사용자의 Facebook 사용자 ID를 가져오고 싶습니다. 나는 올바른 방향으로 이드를 얻을 수 없다. 제발 저를 안내하십시오, 어떻게 얻을 수 있습니까? 내 코드는입니다.로그인하여 Facebook 사용자 ID 가져 오기

public void onSuccess(LoginResult loginResult) { 
        // App code 

GraphRequest.newMeRequest(
     loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() { 
     @Override 
     public void onCompleted(JSONObject object, GraphResponse response) { 
       if (response.getError() != null) { 
       // handle error 
       } else { 
       String name= object.optString("name"); 
       String id = object.optString("id"); 

       Intent i = new Intent(Login.this, MainActivity.class); 
       startActivity(i); 
     } 
    } 

    }).executeAsync(); 
} 

답변

2

귀하의 코드는 다음과 내가 이것을 사용하여 현재 해요 코드입니다, 바로 보이는, 어쩌면 도움이됩니다.

loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() { 
      @Override 
      public void onSuccess(LoginResult loginResult) { 
       // App code 
       GraphRequest request = GraphRequest.newMeRequest(
         AccessToken.getCurrentAccessToken(), 
         new GraphRequest.GraphJSONObjectCallback() { 
          @Override 
          public void onCompleted(JSONObject object, GraphResponse response) { 

           String email=object.optString("email"); 
           String id=object.optString("id") 
          } 
         }); 
       Bundle parameters = new Bundle(); 
       parameters.putString("fields", "email"); 
       request.setParameters(parameters); 
       request.executeAsync(); 

      } 
+0

이 코드는 올바르게 작동하지만 사용자의 Facebook ID에서 이름과 이메일을 모두 받고 싶습니다. 귀하의 코드는 이름이나 이메일 중 하나만 제공합니다. 한 번에 이름과 이메일을 모두받을 수 있습니까? –

+1

@nabiasaroosh 요청에 따라 원하는 것을 넣어야합니다. parameters.putString ("fields", "email, name"); 이름과 이메일은 객체의 일부가됩니다. 문자열 이름 = object.optString ("이름"); –

+0

waoo ... brilliant. 한 번에 이름, 이메일 및 이드가 있습니다. 고맙습니다. –

관련 문제