para google documentos developer desarrolladores java google-drive-sdk google-drive-api

java - google - ADVERTENCIA: no se pueden cambiar los permisos para todos:



google drive para desarrolladores (7)

Al ejecutar el ejemplo de inicio rápido de Java en https://developers.google.com/drive/web/quickstart/java?hl=hu en NetBeans, recibo el código de error:

Jun 04, 2015 12:12:11 AM com.google.api.client.util.store.FileDataStoreFactory setPermissionsToOwnerOnly WARNING: unable to change permissions for everybody: C:/Users/Quibbles/credentials/drive-api-quickstart

¿Qué estoy haciendo mal?

Editar: este es el mensaje de error completo.

Jun 04, 2015 5:11:39 PM com.google.api.client.util.store.FileDataStoreFactory setPermissionsToOwnerOnly WARNING: unable to change permissions for owner: C:/Users/Quibbles/.credentials/drive-api-quickstart Exception in thread "main" java.lang.NullPointerException at java.io.Reader.<init>(Reader.java:78) at java.io.InputStreamReader.<init>(InputStreamReader.java:72) at DriveQuickstart.authorize(DriveQuickstart.java:64) at DriveQuickstart.getDriveService(DriveQuickstart.java:87) at DriveQuickstart.main(DriveQuickstart.java:96) Java Result: 1


Básicamente, si ya activó la API de Drive y creó el archivo credentials.json en Google Drive API Rest , ahora necesita:

1 - Elimina el directorio de tokens generado en tu última ejecución. En este directorio contiene un archivo StoredCredential. 2 - Cambie de SCOPE a DriveScopes.DRIVE como muestra abajo:

Lista estática privada SCOPES = Collections.singletonList (DriveScopes.DRIVE);

3 - Vuelva a ejecutar el programa. Se le solicitará que inicie sesión en su cuenta de Google para dar el consentimiento de acceso.

4 - Se generará un nuevo directorio de tokens en su proyecto y ahora con permisos de lectura y escritura en Google Drive.

Este trabajo para mi.


El problema real es un error en el código API de Google para setPermissionsToOwnerOnly

El código fue escrito para funcionar solo en sistemas basados ​​en Linux / Unix y no en sistemas basados ​​en Windows ACL.

Puede ignorar la advertencia o escribir su propia clase DataStore que establezca los permisos correctamente para Windows.

Voy a tratar de presentar un error con Google también.


Estaba enfrentando el mismo problema en Eclipse. Aquí hay una solución:

  1. Ejecute eclipse en modo administrador

  2. Borre el directorio C:/Users/<username>.credentials/calendar-java-quickstart.json

  3. Copie el archivo .json en el directorio bin, por ejemplo, bin/main/resources/client_secret.json

Eres libre de correr ahora.



Solo asegúrese de que client_secret.json esté en el directorio main / resources /.

InputStream in = DriveQuickstart.class.getResourceAsStream("/json/client_secret.json");


Tuve el mismo problema al ejecutar el ejemplo dado en el tutorial " https://developers.google.com/drive/v2/web/quickstart/java ". Seguí las instrucciones del mismo modo que se dan en el tutorial, pero seguí recibiendo esta excepción de permiso. Eventualmente, logró solucionarlo moviendo el "client_secret.json" a la carpeta "/ build / classes / main / classes". Además, antes de crear el proyecto con "gradle -q run" por primera vez, elimine los archivos en la carpeta "C: / Users / userName / .credentials".


Tuve el mismo problema y desperdicié horas antes de darme cuenta de que "no se pueden cambiar los permisos para el propietario: C: / Users / Quibbles.credentials / drive-api-quickstart"
Es solo una advertencia.

El verdadero problema es el puntero nulo aquí.

InputStream in = DriveQuickstart.class.getResourceAsStream("/client_secret.json");

Esta línea fue el problema en mi caso. "in" era nulo y, por lo tanto, el puntero nulo.

InputStream in = new FileInputStream("<Full Path>//client_secret.json");

Esto resolvió mi problema.