Me gustaría usar el Selector de Google para elegir un archivo específico de Drive, obtener su ID y luego compartirlo con otras cuentas usando la API de Drive. El problema es que puedo:
owner . La primera opción obviamente podría causar algunos problemas, ya que compartir no siempre funcionará. El segundo podría ocultar algunos archivos que, de hecho, aún pueden ser compartidos por el usuario (por lo general, los editors también tienen los derechos para compartir).
¿Alguien conoce una forma de mostrar solo los archivos que se pueden compartir en Google Picker?
Gracias, Kaper
Tengo exactamente el mismo escenario que tú. Lamentablemente, no encuentro ninguna configuración existente de Google Picker que lo admita.
Aquí está la solución que hice:
Referencia: https://developers.google.com/drive/api/v3/reference/permissions#resource
Por lo que puedo decir, esto no es posible con la API de Google Picker, pero la API de Drive puede ayudar.
Revisé la documentación de Google Picker. Como ya habrás visto, el selector se crea con PickerBuilder() , que toma los objetos View para determinar qué archivos estarán visibles. La subclase DocsView tiene un método setOwnedByMe() para mostrar o excluir solo los archivos de su propiedad, sin embargo, esto no verifica el estado del editor y no hay otros métodos que puedan hacerlo.
View tiene un método setQuery() , que parecía prometedor para agregar una consulta de búsqueda, pero lo probé y usa la sintaxis de búsqueda avanzada de Drive UI, que tampoco tiene una forma de buscar editores. De hecho, setQuery() solo rellena previamente el campo de búsqueda ya incluido en el selector.
Como alternativa, dado que ya planea usar la API de Drive, puede tomar los ID de archivo seleccionados de Response.DOCUMENTS del selector y luego conectarlos a files.get para validar primero si el usuario tiene acceso de editor y mostrar una advertencia. antes de continuar para que al menos sepan qué archivos no se pueden compartir.
Además,files.list tiene una guía de búsqueda que puede consultar, y el parámetro q permite buscar el estado del editor con la consulta 'test@example.org' in writers . Si realmente necesita mostrar solo estos archivos, podría escribir una aplicación que use solo la API de Drive en lugar de Google Picker. PickerBuilder() genera un objeto en vivo conectado a Drive, por lo que no hay una manera fácil de conectarle los datos de files.list .