Ho incontrato questo problema alcune volte, ma non ho mai potuto puntare il dito su di esso, attribuendolo alla latenza GDAA's, al mio codice bacato, ecc ... I finalmente sono riuscito a creare uno scenario in cui posso riprodurlo tranquillamente, quindi vorrei chiedere a persone che conoscono se è una caratteristica che non capisco o un insetto. Se è il caso, per favore indicami il punto in cui posso lamentarmi.L'utente che disconnette l'applicazione in Drive causa la perdita di dati in ambito FILE
Lo discuterò sullo sfondo dell'API REST per semplicità.
1/Diamo uno app autenticato unità API che gira sotto portata DRIVE_FILE
com.google.api.services.drive.Drive svc =
new Drive.Builder(
AndroidHttp.newCompatibleTransport(),
new GsonFactory(),
GoogleAccountCredential
.usingOAuth2(context, Collections.singletonList(DriveScopes.DRIVE_FILE))
).build();
2/creare un file (file/cartelle) nell'unità Google utilizzando
svc.files().insert([METADATA], [CONTENT]).execute();
3/cerca gli oggetti che hai creato usando
svc.files().list().setQ([QUERY]).setFields([FIELDS]).execute();
Quando l'app viene eseguita, l'utente passa attraverso la solita routine Account-Pick/Drive-Authorize e tutto funziona come previsto. I file vengono creati, visibile, può essere trovato ... finché un utente non revoca l'autorizzazione mediante
Impostazioni> Gestisci Applicazioni> Disconnetti da Drive
in drive.google.com.
Dopodiché, se l'app Android viene riavviata (e autorizzata di nuovo), nessuno degli oggetti creati prima della revoca è visibile.
Potrebbe essere di progettazione, non lo so. Se questo è il caso, non riesco a trovare un modo in cui l'app Android può arrivare a tutto ciò che ha creato prima. Potrei sicuramente creare un'altra app di "manutenzione" con scope DRIVE per risolvere questo problema, ma ...
Ora, nel caso di GDAA, diventa ancora peggio. Non solo GDAA non ha l'ambito DRIVE per risolverlo, ma se viene eseguita la stessa sequenza di passaggi e l'app crea un file/cartella immediatamente dopo la revoca, GDAA non si lamenta, ma il file/cartella non viene creato affatto. Dopo un po '(minuti) viene visualizzata la riabilitazione, ma i file creati nel frattempo non si trovano da nessuna parte e tutto ciò che precede la revoca viene perso anche dall'app (creatore) (è certamente visibile in l'app web che ovviamente ha DRIVE come scope).
Grazie per la vostra pazienza.
È la vostra aspettativa che i file creati previa autorizzazione revocata saranno disponibili alla riautorizzazione con l'ambito drive.file? –
Assolutamente. Io (un utente di un'app) ho migliaia di file creati dall'app. Poi lui/lei/io giochiamo con "Disconnetti dall'azionamento". Dopo aver avviato l'app, chiede di autorizzare nuovamente l'accesso ai file creati dall'app. E OOPS, non c'è più niente. L'ambito FILE dice "oggetti creati da questa app" .. – seanpj
Sono d'accordo che è una brutta esperienza. Stiamo discutendo dell'aggiornamento della finestra di disconnessione e del testo dell'ambito dell'app per chiarire il comportamento. – Daniel