web-dev-qa-db-fra.com

ATTENTION: impossible de changer les permissions pour tout le monde:

Lors de l'exécution de l'exemple de démarrage rapide Java à https://developers.google.com/drive/web/quickstart/java?hl=hu dans NetBeans, le code d'erreur suivant s'affiche: 

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'est-ce que je fais mal?

Edit: Ceci est le message d'erreur complet.

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
23
quibblify

Avait le même problème et des heures perdues avant de réaliser que "impossible de modifier les autorisations pour le propriétaire: C:\Users\Quibbles.credentials\drive-api-quickstart"
est juste un avertissement. 

Le vrai problème est le pointeur nul ici.

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

Cette ligne était le problème dans mon cas. "in" était null et par conséquent le pointeur null. 

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

Cela a résolu mon problème.

27
C Deepak

Le problème actuel est un bug dans le code API de Google pour setPermissionsToOwnerOnly.

Le code a été écrit pour fonctionner uniquement sur les systèmes Linux/Unix et non les systèmes Windows ACL.

Vous pouvez ignorer l'avertissement ou écrire votre propre classe DataStore qui définit les autorisations correctement pour Windows.

Je vais aussi essayer de déposer un bug avec Google.

11
JustADev

J'étais confronté au même problème dans Eclipse. Voici une solution:

  1. Exécuter Eclipse en mode administrateur

  2. Effacer le répertoire C:/Users/<username>.credentials/calendar-Java-quickstart.json

  3. Copiez le fichier .json dans le répertoire bin, par exemple. bin/main/resources/client_secret.json

Vous êtes libre de courir maintenant.

4
Dilip Mane

Assurez-vous simplement que client_secret.json est sous main/resources/directory . enter image description here

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

Je viens de rencontrer le même problème avec l'exemple https://developers.google.com/google-apps/calendar/quickstart/Java . Je soupçonne que le problème est que vous l'exécutez dans Windows et que la machine virtuelle Java que vous utilisez ne dispose pas des droits d'administrateur pour la modification des autorisations de fichiers dans Windows.

Voir Exécuter une application Java en tant qu'administrateur sous Windows .

0
nicordesigns

En gros, si vous avez déjà activé l'API de lecteur et créé le fichier credentials.json dans Reste de l'API Google Drive , vous devez maintenant:

1 - Supprimez le répertoire tokens généré lors de votre dernière exécution. Dans ce répertoire contient un fichier StoredCredential . 2 - Remplacez SCOPE par DriveScopes.DRIVE comme ci-dessous:

liste statique privée SCOPES = Collections.singletonList (DriveScopes.DRIVE);

3 - Lancez le programme. Il vous sera demandé de vous connecter à votre compte Google pour donner le consentement d'accès. 

4 - Un nouveau répertoire de tokens sera généré dans votre projet et maintenant avec les autorisations de lecture et d’écriture sur google Drive.

Ce travail pour moi.

0
Eduardo Aparecido

Avait le même problème lors de l’exemple donné dans le tutoriel " https://developers.google.com/drive/v2/web/quickstart/Java ". J'ai suivi les instructions comme indiqué dans le tutoriel, mais j'ai continué à avoir cette exception d'autorisation. Finalement, j'ai réussi à résoudre ce problème en déplaçant le fichier "client_secret.json" dans le dossier "\ build\classes\main\classes". De même, avant de créer le projet avec "gradle -q run" pour la première fois, supprimez tous les fichiers du dossier "C:\Users\userName\.credentials". 

0
user1864863