web-dev-qa-db-ja.com

警告:全員の権限を変更できません:

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

「所有者のアクセス許可を変更できない:C:\ Users\Quibbles.credentials\drive-api-quickstart」に気付く前に、同じ問題を抱えて時間を無駄にしました
は単なる警告です。

本当の問題は、ここのヌルポインターです。

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

私の場合、この行が問題でした。 「in」はヌルであったため、ヌルポインターでした。

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

これで問題が解決しました。

29
C Deepak

実際の問題は、GoogleのsetPermissionsToOwnerOnlyのAPIコードのバグです

このコードは、Windows ACLベースのシステムではなく、Linux/Unixベースのシステムでのみ動作するように作成されました。

警告を無視するか、Windowsの権限を正しく設定する独自のDataStoreクラスを作成できます。

私もGoogleでバグを報告しようとしています。

14
JustADev

Eclipseでも同じ問題に直面していました。解決策は次のとおりです。

  1. Eclipseを管理モードで実行します

  2. ディレクトリをクリアC:/Users/<username>.credentials/calendar-Java-quickstart.json

  3. .jsonファイルをbinディレクトリにコピーします。 bin/main/resources/client_secret.json

今すぐ無料で実行できます。

4
Dilip Mane

基本的にde Drive APIを既に有効にし、 Google Drive API Rest でcredentials.jsonファイルを作成した場合、次が必要になります。

1-前回の実行で生成されたtokensディレクトリを削除します。このディレクトリには、ファイルStoredCredentialが含まれています。 2-次のサンプルのように、de[〜#〜] scope [〜#〜]DriveScopes.DRIVEに変更します。

private static List SCOPES = Collections.singletonList(DriveScopes.DRIVE);

3-プログラムを再実行します。アクセス許可を得るには、Googleアカウントにログインする必要があります。

4-プロジェクトで新しいone tokensディレクトリが生成され、Googleドライブで読み取りおよび書き込み権限が付与されます。

これは私のために働きます。

1

Client_secret.jsonがmain/resources /ディレクトリの下にあることを確認してください。 enter image description here

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

https://developers.google.com/google-apps/calendar/quickstart/Java の例で同じ問題に遭遇しました。問題は、Windowsで実行していることと、実行しているJVMがWindowsでファイルのアクセス許可を変更するための管理者権限を持っていないことです。

Run Java Windowsの管理者としてのアプリケーション を実行

0
nicordesigns

チュートリアル「 https://developers.google.com/drive/v2/web/quickstart/Java 」に記載されている例を実行すると、同じ問題が発生しました。チュートリアルの指示に従って指示に従いましたが、この許可例外を取得し続けました。最終的に、 "client_secret.json"を "\ build\classes\main\classes"フォルダーに移動することで整理しました。また、「gradle -q run」を使用してプロジェクトを初めてビルドする前に、「C:\ Users\userName\.credentials」フォルダー内のファイルをすべて削除します。

0
user1864863