sesion restaurar recuperar papelera online iniciar google entrar docs descargar borrados archivos google-drive-sdk google-drive-android-api

google drive sdk - restaurar - La aplicación de desconexión del usuario en Drive provoca la pérdida de datos en el alcance de ARCHIVO



recuperar archivos borrados de la papelera de google drive (1)

El primer problema es:

  1. Un usuario cancela la autorización a través de: Configuración> Gestionar aplicaciones> Desconectar de Drive
  2. Luego reautoriza esa aplicación
  3. Los archivos que esta aplicación fue autorizada para ver con el alcance DRIVE_FILE ya no están autorizados.

Este es el comportamiento esperado de las API REST y Android.

No creemos que los usuarios esperen intuitivamente que todos los archivos previamente autorizados sean reautorizados. Es posible que el usuario no recuerde los archivos que se autorizaron anteriormente, y que informar a los usuarios que estos archivos van a ser autorizados de nuevo probablemente causen confusión.

El segundo problema es el comportamiento de GDAA para la creación de carpetas en esta situación. Actualmente no admitimos CompletionEvents para crear carpetas, pero esto es algo que investigaremos.

Me he encontrado con este problema varias veces, pero nunca pude apuntarme con él, atribuyéndolo a la latencia de GDAA , a mi código de error , etc. Finalmente logré llegar a un escenario donde puedo reproducirlo de forma segura, entonces me gustaría preguntarle a las personas que saben si es una característica que no entiendo o una simple falla. Si este es el caso, por favor, dirígeme al lugar donde pueda molestarlo.

Lo discutiré en el fondo de la REST API para simplificar.

1 / Tengamos una aplicación autenticada de Drive API que se ejecuta bajo el alcance 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 / crea un archivo (archivos / carpetas) en la unidad de Google usando

svc.files().insert([METADATA], [CONTENT]).execute();

3 / busca los objetos que has creado usando

svc.files().list().setQ([QUERY]).setFields([FIELDS]).execute();

Cuando se ejecuta la aplicación, el usuario realiza la rutina habitual de selección de cuenta / manejo de la unidad y todo funciona como se espera. Los archivos son creados, visibles, pueden ser encontrados ... hasta que un usuario revoca la autorización por medio de

Configuraciones> Administrar aplicaciones> Desconectar de Drive

en drive.google.com .

Después de eso, si la aplicación de Android se reinicia (y vuelve a autorizar), ninguno de los objetos creados antes de la revocación es visible.

Puede ser por diseño, no lo sé. Si este es el caso, no puedo encontrar una forma de cómo la aplicación de Android puede llegar a cualquier cosa que haya creado antes. Ciertamente podría crear otra aplicación de ''mantenimiento'' con el alcance de DRIVE para arreglar esto, pero ...

Ahora, en el caso de GDAA , empeora. No solo GDAA no tiene el alcance DRIVE para arreglarlo, pero si se realiza la misma secuencia de pasos y la aplicación crea un archivo / carpeta inmediatamente después de la revocación, GDAA no se queja, pero el archivo / carpeta no se crea en absoluto. Después de un tiempo (minutos), aparece la reautorización, pero aún así, los archivos creados mientras tanto no se encuentran por ningún lado y todo lo anterior a la revocación también se pierde en la aplicación (del creador) (sin duda es visible en la aplicación web que obviamente tiene un alcance DRIVE).

Gracias por tu paciencia.