ПРЕДУПРЕЖДЕНИЕ: невозможно изменить разрешения для всех:
При запуске примера быстрого запуска Java в https://developers.google.com/drive/web/quickstart/java?hl=hu в NetBeans я получаю код ошибки:
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
Что я делаю неправильно?
Изменить: это полное сообщение об ошибке.
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
Ответы
Ответ 1
Имел ту же проблему и потратил впустую часы, прежде чем понял, что "невозможно изменить разрешения для владельца: C:\Users\Quibbles.credentials\drive-api-quickstart"
это просто предупреждение.
Реальная проблема здесь - нулевой указатель.
InputStream in =
DriveQuickstart.class.getResourceAsStream("/client_secret.json");
Эта строка была в моем случае. "in" имеет значение null и, следовательно, нулевой указатель.
InputStream in = new FileInputStream("<Full Path>\\client_secret.json");
Это разрешило мою проблему.
Ответ 2
Реальная проблема - ошибка в коде API Google для setPermissionsToOwnerOnly
Код был написан для работы только с системами на базе Linux/Unix, а не с системами на базе Windows ACL.
Вы можете игнорировать предупреждение или написать собственный класс DataStore, который правильно устанавливает разрешения для Windows.
Я тоже попытаюсь найти ошибку с Google.
Ответ 3
Я столкнулся с той же проблемой в Eclipse. Это решение:
-
Запуск затмения в режиме администратора
-
Очистить каталог
C:/Users/<username>.credentials/calendar-java-quickstart.json
-
Скопируйте файл .json в каталог bin, например. bin/main/resources/client_secret.json
Вы можете запускать прямо сейчас.
Ответ 4
Я просто столкнулся с тем же вопросом с примером https://developers.google.com/google-apps/calendar/quickstart/java. Я подозреваю, что проблема в том, что вы запускаете его в Windows, а JVM, в котором вы работаете, не имеет прав Adminsitrator для изменения прав доступа к файлам в Windows.
Смотрите Запустите приложение Java как администратор в Windows
Ответ 5
Имела ту же проблему при запуске примера, приведенного в учебнике " https://developers.google.com/drive/v2/web/quickstart/java". Следуя инструкции, как указано в учебнике, но продолжал получать это исключение. В конце концов, удалось отсортировать его, переместив "client_secret.json" в папку "\ build\classes\main\classes". Кроме того, перед созданием проекта с "gradle -q run" в первый раз удалите все файлы в папке "C:\Users\userName \.credentials".
Ответ 6
Просто убедитесь, что client_secret.json находится в каталоге main/resources/. ![enter image description here]()
InputStream in =
DriveQuickstart.class.getResourceAsStream("/json/client_secret.json");
Ответ 7
В основном, если вы уже включили de Drive API и создали файл credentials.json в Google Drive API Rest, теперь вам нужно:
1 - Удалите каталог токенов, сгенерированный в вашем последнем исполнении. В этом каталоге содержится файл StoredCredential. 2 - Изменение де ОБЪЕМ к DriveScopes.DRIVE как образец ниже:
приватный статический список SCOPES = Collections.singletonList(DriveScopes.DRIVE);
3 - Перезапустите программу. Будет предложено войти в свою учетную запись Google, чтобы дать согласие на доступ.
4 - В вашем проекте будет сгенерирован новый каталог токенов с правами на чтение и запись на Google Диске.
Это работа для меня.