J'ai une application Java qui doit permettre aux utilisateurs d'autoriser l'accès de ma demande aux services Google. Je le bit de code suivant en place pour montrer et obtenir l'autorisation dont j'ai besoin:Googles AutorisationCodeInstalledApp.authorize() méthode de blocage de l'autorisation annulée
GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(httpTransport, JsonFactory, clientSecrets, scopes).build();
Credential cred = null;
try
{
LocalServerReceiver localSrv = new LocalServerReceiver();
AuthorizationCodeInstalledApp app = new AuthorizationCodeInstalledApp(flow, localSrv);
cred = app.authorize(userName);
}
catch(Exception ex)
{
ex.printStackTrace();
}
refreshToken = cred.getRefreshToken();
Si l'utilisateur clique sur les boutons « Authorize » ou « Annuler » tout va bien. Cependant, s'ils ferment la fenêtre du navigateur, l'application entière se fige. Y at-il un moyen de gérer ce cas pour éviter le gel ou introduire un délai d'attente?
Que signifie «congélation»? Pas de réponse? –
Le processus se bloque et l'application entière devient non-réactif. Même Eclipse ne peut pas le tuer à ce stade, mais le processus doit être terminé manuellement. – ChargerIIC
Si c'est la même chose que je vois, l'appel à app.authorize() fait un Thread.wait() jusqu'à ce que le code d'autorisation soit redirigé depuis la page de connexion. Si la page de connexion est fermée, alors ce code d'authentification ne sera jamais renvoyé, alors l'application apparaîtra figée, mais en fait elle attend. Malheureusement, je ne sais pas encore quelle est la solution pour cela. –