Подтвердить что ты не робот

ПРЕДУПРЕЖДЕНИЕ: невозможно изменить разрешения для всех:

При запуске примера быстрого запуска 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
4b9b3361

Ответ 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 Диске.

Это работа для меня.