Cómo obtener el token sin conexión y el token de actualización y el acceso de actualización automática a la API de Google

Estoy desarrollando una aplicación que accede a las API de Google (comenzando con la API del calendario) utilizando OAuth2 y las bibliotecas de cliente de Google para eso (está en Appengine y GWT BTW).

He implementado miOAuth2Call Servlet trasero, extendiendo el Google.AbstractAppEngineAuthorizationCodeCallbackServlet.

Lo tengo funcionando, tengo acceso y puedo ver calendarios, etc., pero tengo dos problemas:

1) No obtengo un token de actualización, a pesar de solicitar explícitamente el acceso sin conexión:

public static GoogleAuthorizationCodeFlow newFlow( String scope ) throws IOException {
    GoogleAuthorizationCodeFlow.Builder builder = new GoogleAuthorizationCodeFlow.Builder(
            HTTP_TRANSPORT, 
            JSON_FACTORY,
            getClientSecrets(), 
            Collections.singleton( scope ) );

    builder.setCredentialStore( new AppEngineCredentialStore() ).setAccessType("offline");

    return builder.build();
}

2) No puedo ver cómo configurar la función de actualización automática. Estas páginas describen los métodos:

Clase credencial.Clase CredentialStoreRefreshListener

Pero no puedo ver dónde agregar el escucha de actualización. No hay tal método en elGoogleAuthorizationCodeFlow.Builder clase, a diferencia de laCredential.Builder clase

EDITAR Después de depurar más el código, cuando vuelve la credencial (en laonSuccess() método) parece tener unRefreshListener establecido ya ... así que tal vez es su defecto, y mi único problema es que no estoy recibiendo unrefresh_token, a pesar de pedirlo.

¿Tal vez necesites revisar la configuración en la API de Google también?

Respuestas a la pregunta(3)

Su respuesta a la pregunta