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
「所有者のアクセス許可を変更できない: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");
これで問題が解決しました。
実際の問題は、GoogleのsetPermissionsToOwnerOnlyのAPIコードのバグです
このコードは、Windows ACLベースのシステムではなく、Linux/Unixベースのシステムでのみ動作するように作成されました。
警告を無視するか、Windowsの権限を正しく設定する独自のDataStoreクラスを作成できます。
私もGoogleでバグを報告しようとしています。
Eclipseでも同じ問題に直面していました。解決策は次のとおりです。
Eclipseを管理モードで実行します
ディレクトリをクリアC:/Users/<username>.credentials/calendar-Java-quickstart.json
.jsonファイルをbinディレクトリにコピーします。 bin/main/resources/client_secret.json
今すぐ無料で実行できます。
基本的に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ドライブで読み取りおよび書き込み権限が付与されます。
これは私のために働きます。
https://developers.google.com/google-apps/calendar/quickstart/Java の例で同じ問題に遭遇しました。問題は、Windowsで実行していることと、実行しているJVMがWindowsでファイルのアクセス許可を変更するための管理者権限を持っていないことです。
チュートリアル「 https://developers.google.com/drive/v2/web/quickstart/Java 」に記載されている例を実行すると、同じ問題が発生しました。チュートリアルの指示に従って指示に従いましたが、この許可例外を取得し続けました。最終的に、 "client_secret.json"を "\ build\classes\main\classes"フォルダーに移動することで整理しました。また、「gradle -q run」を使用してプロジェクトを初めてビルドする前に、「C:\ Users\userName\.credentials」フォルダー内のファイルをすべて削除します。