2017-05-05 11 views
-1

나는 first_name, last_name 및 link_uri를 얻을 수 있었다. 나는 사용자의 생년월일을 얻는 방법을 모르겠습니다.Android Facebook SDK | 출생 일을 얻는 방법

이 내 loginActivity에 사용 된 코드는 다음과 같습니다

public class LoginActivity extends AppCompatActivity { 

    private CallbackManager callbackManager; 
    private AccessTokenTracker accessTokenTracker; 
    private ProfileTracker profileTracker; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     FacebookSdk.sdkInitialize(getApplicationContext()); 
     setContentView(R.layout.activity_login); 

     callbackManager = CallbackManager.Factory.create(); 
     accessTokenTracker = new AccessTokenTracker() { 
      @Override 
      protected void onCurrentAccessTokenChanged(AccessToken oldToken, AccessToken newToken) { 
      } 
     }; 

     profileTracker = new ProfileTracker() { 
      @Override 
      protected void onCurrentProfileChanged(Profile oldProfile, Profile newProfile) { 
       nextActivity(newProfile); 
      } 
     }; 
     accessTokenTracker.startTracking(); 
     profileTracker.startTracking(); 


     LoginButton loginButton = (LoginButton) findViewById(R.id.login_button); 
     FacebookCallback<LoginResult> callback = new FacebookCallback<LoginResult>() { 
      @Override 
      public void onSuccess(LoginResult loginResult) { 
       Profile profile = Profile.getCurrentProfile(); 
       nextActivity(profile); 
       Toast.makeText(getApplicationContext(), "Logging in...", Toast.LENGTH_SHORT).show(); 
      } 

      @Override 
      public void onCancel() { 
      } 

      @Override 
      public void onError(FacebookException e) { 
      } 
     }; 
     loginButton.setReadPermissions("user_friends"); 
     loginButton.registerCallback(callbackManager, callback); 
    } 

    @Override 
    protected void onResume() { 
     super.onResume(); 
     //Facebook login 
     Profile profile = Profile.getCurrentProfile(); 
     nextActivity(profile); 
    } 

    @Override 
    protected void onPause() { 
     super.onPause(); 
    } 

    protected void onStop() { 
     super.onStop(); 
     //Facebook login 
     accessTokenTracker.stopTracking(); 
     profileTracker.stopTracking(); 
    } 

    @Override 
    protected void onActivityResult(int requestCode, int responseCode, Intent intent) { 
     super.onActivityResult(requestCode, responseCode, intent); 
     //Facebook login 
     callbackManager.onActivityResult(requestCode, responseCode, intent); 

    } 

    private void nextActivity(Profile profile) { 
     if (profile != null) { 
      Intent main = new Intent(LoginActivity.this, MainActivity.class); 
      main.putExtra("name", profile.getFirstName()); 
      main.putExtra("surname", profile.getLastName()); 
      main.putExtra("imageUrl", profile.getProfilePictureUri(200, 200).toString()); 
      startActivity(main); 
     } 
    } 
} 

나는 다음 활동 그래서 나는 또한 반환 된 값으로 뭔가를 어떻게해야합니까에서 사용자의 나이를 표시하려면? (나는 dd/mm/yyyy 또는 mm/dd/yyyy와 같을 것이라고 가정합니다)

+0

먼저 필요한 권한을 사용자에게 요청해야합니다. 또한 RTM : https://developers.facebook.com/docs/graph-api/reference/user/ – CBroe

답변

0

신청서를 제출하여 페이스 북 개발자 콘솔 또는 응용 프로그램 용 테스트 개발자를 작성해야합니다. 그 계정에 대해 코드를 실행하는 동안 "생년월일"의 허가를 요청하면 해당 테스트 개발자를위한 dob를 받게됩니다