Solución:
Una cosa con la que debe tener cuidado: se devuelve un token de actualización (además del token de acceso) solo cuando el usuario da su consentimiento explícitamente para los ámbitos solicitados. Básicamente, cuando se muestra la página de aprobación. Todos los flujos posteriores solo devolverán un token de acceso.
Ahora, para probar su aplicación y asegurarse de recibir el token de actualización la primera vez, puede usar el parámetro Approved_prompt = force (builder.setApprovalPrompt("force")
) para asegurarse de que la página de aprobación se muestre en el flujo y obtenga el consentimiento explícito del usuario. Después de solucionar cualquier problema y asegurarse de que los tokens de actualización se almacenan correctamente, puede eliminar ese indicador (el valor predeterminado es auto
)
También hay más información disponible en la sección de acceso sin conexión en la guía para desarrolladores.
Para obtener el token de actualización tienes que configurar ambos accessType
= “desconectado” y approvalPrompt
= “fuerza“.
GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
HTTP_TRANSPORT,
JSON_FACTORY,
CLIENT_ID,
CLIENT_SECRET,
SCOPE)
.setAccessType("offline")
.setApprovalPrompt("force")
.build();