title: Can't get user birthday with Google Play services API
body: <p><strong>EDIT</strong></p>
  
  <p>After a new try I finally got my birthday. I didn't change the implementation. I guess it took a few hours for the changes in my Google Plus profile to propagate, making my birthday public. A bit more than expected. Now I'm wondering whether I can ask this permission (birthday) when the user sign in, without the need of the birthday to be public. </p>
  
  <p>As suggested by this information in the <a href="https://developers.google.com/identity/sign-in/android/people" rel="nofollow">developers guide</a> : </p>
  
  <blockquote>
    <p>For additional profile data that might be available, see
    GoogleSignInAccount. Note that any of the profile fields can be null,
    depending on which scopes you requested and what information the
    user's profile includes.</p>
  </blockquote>
  
  <p><strong>Initial POST</strong></p>
  
  <p>I would like to get the birthdays of a user after he signed in Google Plus. Being not familiar with Google APIs in general, I'm wondering whether my implementation makes some sense or not. Right now, I'm just trying to get my own birthday from my Google account linked to my device.</p>
  
  <p><strong>Here is what I did.</strong> I followed the steps from <a href="https://developers.google.com/identity/sign-in/android/start-integrating" rel="nofollow">developer guide</a> for the sign in procedure. In addition to OAuth, I added the Google Plus dependency in gradle: </p>
  
  <blockquote>
    <p>compile 'com.google.android.gms:play-services-plus:8.3.0'</p>
  </blockquote>
  
  <p>In my <code>Activity</code>, there is a button to sign in Google Plus. </p>
  
  <pre><code>GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                  .requestScopes(new Scope(Scopes.PLUS_ME), new Scope(Scopes.PLUS_LOGIN),new Scope(Scopes.PROFILE))
                  .build();
  GoogleApiClient mGoogleApiClient = new GoogleApiClient.Builder(this)
                  .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
                  .addConnectionCallbacks(this)
                  .addOnConnectionFailedListener(this)
                  .addApi(Plus.API)
                  .build();
  
  
  loginButton = (SignInButton) findViewById(R.id.sign_in_button);
  loginButton.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View v) {
                  Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
                  startActivityForResult(signInIntent, RC_SIGN_IN);
              }
          });
  </code></pre>
  
  <p>After the initial sign in, I try to connect to the Google Play Services. </p>
  
  <pre><code>@Override
  protected void onActivityResult(int requestCode, int resultCode, Intent data) {
      super.onActivityResult(requestCode, resultCode, data);
      if (requestCode == RC_SIGN_IN) {
              GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
              Log.d(TAG, "handleSignInResult:" + result.isSuccess());
              if (result.isSuccess()) {
                  mGoogleApiClient.connect(GoogleApiClient.SIGN_IN_MODE_OPTIONAL);
             }
      }
  }
  </code></pre>
  
  <p>Once connected, I try to fetch the birthday of the user. </p>
  
  <pre><code>@Override
      public void onConnected(Bundle bundle) {
          Person currentPerson = Plus.PeopleApi
                  .getCurrentPerson(mGoogleApiClient);
          addGoogleProfile(currentPerson); //Add the user to a list of persons
          refreshListView(); //update the listView
          Log.d(TAG, "Current person: name=" + currentPerson.getDisplayName() + ", has birthday = " + (currentPerson.hasBirthday() ? "yes, it is" + currentPerson.getBirthday() : "no"));
      }
  </code></pre>
  
  <p><strong>Problem</strong> </p>
  
  <p>The <strong>birthday is never set and always appears to be null</strong>. Other data such as the name and profile image are accessible. I didn't find much information on the different <a href="https://developers.google.com/android/reference/com/google/android/gms/common/Scopes" rel="nofollow">Scopes</a>. I'm more familiar with Facebook API where the permissions are more explicitly requested upon login. </p>
  
  <p>Any idea on what I am missing ?</p>
  
  <p>Ho and I set my birthday field as "public" of the associated Google account.</p>
  
  <p>Cheers</p>