2012-10-02 60 views
5

Estoy probando la API de Google Drive. El script de prueba hace HTTP GET para acceder a la API Files-> List, pero de alguna manera siempre obtengo una lista vacía en los elementos. Tengo cientos de archivos en mi unidad de Google, por lo que el resultado es inesperado. La respuesta HTTP se muestra a continuación.Acceder a la API de Google Drive Devuelve la Lista de archivos vacía

{ 
    "kind": "drive#fileList", 
    "etag": "\"VEU5fga3uYlZRf0pG-N1kS4iWP4/Kxo5eGvPKynWfroe9v5L5T43-n0\"", 
    "selfLink": "https://www.googleapis.com/drive/v2/files?maxResults=5", 
    "items": [] 
    } 
+0

Mi alcance es https://www.googleapis.com/auth/drive. También he intentado utilizar el https://docs.google.com/feeds scope y HTTP GET https://docs.google.com/feeds/default/private/full y eso tampoco funciona. – kvzrock

+0

¿Puede mostrar su pedido? –

+0

Parece que acceder a la API de Google a través de la cuenta de servicio NO es lo mismo que acceder a Google Drive a través del usuario al que está vinculada la cuenta de servicio. La cuenta de servicio tiene su propio pequeño mundo que está separado del espacio de Google Drive del usuario. – kvzrock

Respuesta

1

Para permitir la cuenta de servicio para acceder a los archivos en mi propia Google Drive, tengo que dar permiso a la dirección de correo electrónico de la cuenta de servicio. Una vez que los permisos están configurados correctamente, la lista se llena con los archivos a los que la cuenta de servicio tiene acceso.

+0

¿Puede detallar cómo dio permisos a la cuenta de servicio? Compartí mis archivos y carpetas con la dirección de correo electrónico de la cuenta de servicio ([email protected]) pero parece que no funciona. – ifunk

+6

He encontrado mi problema. Tenía el alcance establecido en ".../auth/drive.file". Cambiarlo a ".../auth/drive" solucionó el problema. – ifunk

+0

@ifunk Tengo el mismo problema, ¿puedes explicar qué hiciste exactamente? ¡Gracias por adelantado! – mongotop

1

es suficiente para incluir https://www.googleapis.com/auth/drive.readonly.metadata alcance para listar los archivos

4

Esto generalmente significa que ha autenticado con un alcance que no le da permiso para ver los archivos.

Por ejemplo, el alcance https://www.googleapis.com/auth/drive.file solo proporciona acceso a los archivos creados o abiertos por la aplicación. No podrá acceder a archivos creados en la interfaz de Google Drive o por otras aplicaciones.

Si desea acceder a todos los archivos, deberá usar otro ámbito. https://www.googleapis.com/auth/drive, por ejemplo, le da ámbito completo y permisivo para acceder a todos los archivos de un usuario.

Puede encontrar información sobre los ámbitos disponibles here. Úselo para elegir el alcance adecuado para su aplicación.

+1

Esta es la respuesta correcta. – Cheeso

Cuestiones relacionadas