title: Google Oauth2 refresh_token is empty
body: <p>I do code request with string:</p>
  
  <pre><code>https://accounts.google.com/o/oauth2/v2/auth?
     scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.metadata.readonly&amp;
     state={%22externalUserId%22:%22TEST%22}&amp;
     access_type=offline&amp;
     include_granted_scopes=true&amp;
     redirect_uri=http://localhost:3344/oauth2/google/callbackcode&amp;response_type=code&amp;
     client_id=676016849609-r53vpjccpr9kf5uvuul7h6kvek1id2oh.apps.googleusercontent.com
  </code></pre>
  
  <p>I receive oauth2 code.
  I do token request code based with java client.</p>
  
  <pre><code>private AuthorizationCodeFlow flow;
  @PostConstruct
  public void init() {
      NetHttpTransport transport = null;
      try {
          transport = GoogleNetHttpTransport.newTrustedTransport();
      } catch (GeneralSecurityException e) {
          e.printStackTrace();
      } catch (IOException e) {
          e.printStackTrace();
      }
      try {
          flow = new GoogleAuthorizationCodeFlow.Builder(
                  transport, JSON_FACTORY, GoogleClientSecrets.load(JSON_FACTORY,
                  new InputStreamReader(GoogleCalendarClient.class.getResourceAsStream("/client_secret_676016849609-r53vpjccpr9kf5uvuul7h6kvek1id2oh.apps.googleusercontent.com.json")))
                  , SCOPES).build();
      } catch (IOException e) {
          e.printStackTrace();
      }
      callBackPattern = String.format(callBackPattern, provider().lowerCaseName());
  }
  </code></pre>
  
  <hr>
  
  <pre><code>flow.newTokenRequest(oauthCode)
                  .setRedirectUri(callBackPattern)
                  .execute();
  </code></pre>
  
  <p>And as result i receive <code>TokenResponse</code></p>
  
  <pre><code>{
    "access_token": "ya29.Glv_A8Fidn8cRmQveIy0pbDIjcxssKN61X20u4zjlDYV1NbiC-QO593_isRa8Q5ngSFr-y-zICjXw1WZy4OguOh90SCyPnz0NGYpw7I4fahzH7NORQm-bbnA9Chr",
    "expires_in": 3592,
    "id_token": "eyJhbGciOOiZUzI1NiIsImtpZCI6IjgxMDkxNGZiOTk0OGYxZTQzNTdjYzg3MjY4MDg3Mjk4ZTgzNTlkMjAifQ.eyJpc3MiOiJhY2NvdW50cy5nb29nbGUuY29tIiwiaWF0IjoxNDg4MTg0NDcxLCJleHAiOjE0ODgxODgwNzEsImF0X2hhc2giOiJaVjgxejQwV0pYX3N1WkplazZnem93IiwiYXVkIjoiNjc2MDE2ODQ5NjA5LXI1M3ZwamNjcHI5a2Y1dXZ1dWw3aDZrdmVrMWlkMm9oLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwic3ViIjoiMTE4MTk1OTk4MjU4MDIyMzM2MDUwIiwiZW1haWxfdmVyaWZpZWQiOnRydWUsImF6cCI6IjY3NjAxNjg0OTYwOS1yNTN2cGpjY3ByOWtmNXV2dXVsN2g2a3ZlazFpZDJvaC5hcHBzLmdvb2dsZXVzZXJjb250ZW50LmNvbSIsImVtYWlsIjoic2VyZ2lpX3ZsYXNpdWtAdWtyLm5ldCJ9.DWkcTAwOPnirsDL_ok10GHjoe0Rg0n-uYYtSfn3tXkIg-xB6taaYi2-gdNCh64-hSzgQWsdeLu7Mga1rXfGVTw-iBPWhU80MhoiH_YZtLpAK7f94rBajqHa8ucei1P7RSZxRD-RdB1YMjpJPQhKx5DV0W9xBPB3LN8s1C3vL-06Y4nu7yB2ZFllG6SIJbl7f0Kn2S_SCAxhxGvwSuIqW4ogXwqc0njdBwWlOvdxn8hQ33dftljn-Q5fJ0iEroLEhUhnGwmGAcr7yl-HRjZQvz6ICyQLvRGDv6J12pEdDu2S0mGZfV_zNLG2-EKqo6xm99WsFSMsV_6_TeCG478f7bQ",
    "token_type": "Bearer"
  }
  </code></pre>
  
  <p>There is no errors, because of correct <code>access_token</code>. The problem is that <code>TokenResponse</code> doesn't contain <code>refresh_token</code> data. </p>
  
  <p><strong>How could I get a <code>refresh_token</code>?</strong></p>