Google云端硬盘API错误“警告:无法更改所有者/所有者的权限”

时间:2015-10-03 17:02:46

标签: google-drive-api

我一直在尝试允许我编写的程序访问Google云端硬盘应用程序。我已成功获取客户机密信息,并复制并粘贴示例代码,并尝试使用它成功验证我的程序并使用google驱动器API。

然而,当它到达行

    Credential credential = new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user");

我收到此错误。此错误已经发布过,我基本上尝试了所有解决方案。我已经将我的程序和所有java.exe文件都提升为管理员并尝试运行该程序,但我仍然遇到此错误。

完整错误是:

    Oct 03, 2015 11:48:39 AM com.google.api.client.util.store.FileDataStoreFactory setPermissionsToOwnerOnly
    WARNING: unable to change permissions for everybody: D:\directory
    Oct 03, 2015 11:48:39 AM com.google.api.client.util.store.FileDataStoreFactory setPermissionsToOwnerOnly
    WARNING: unable to change permissions for owner: D:\directory

我在尝试实例化FileDataStoreFactory时也尝试覆盖setPermissionToOwnerOnly,但也失败了。

我尝试了以下解决方案:

http://stackoverflow.com/questions/30634827/warning-unable-to-change-permissions-for-everybody
http://stackoverflow.com/questions/24382069/error-while-executing-google-prediction-api-command-line-sample
https://groups.google.com/forum/#!topic/google-analytics-data-export-api/-7BH7Z40gkw (where the client secret data was hard coded into the program, this is bad, I know, but it didn't work anyway)

此时我不知道该怎么做。我正在从闪存驱动器上运行我的程序,我也尝试从计算机上运行它,但它仍然失败了。我使用的是NetBeans 8.0.2。

错误出现警告,所以也许有一些方法可以忽略警告并继续?这可能是一个解决方案,但我已经研究过,我不确定这是否可能。如果重要的话,我正在运行Windows 10。

1 个答案:

答案 0 :(得分:0)

我刚刚通过Eclipse运行了Drive REST API示例Java Quickstart tutorial并且运行正常。如果你还没有安装Gradle,它确实需要一些设置时间(Eclipse Marketplace也有一个Gradle插件)。

就你的观点而言,我确实收到了相同的警告信息。但是,在 authorize()方法中的加载客户端密钥期间,它发生在我身上。

public static Credential authorize() throws IOException {
    // Load client secrets.
    InputStream in =
        DriveQuickstart.class.getResourceAsStream("/client_secret.json");
    GoogleClientSecrets clientSecrets =
        GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(in));

我怀疑这是您的问题发生的地方。因为,我无法从您的代码段中看到该部分,请查看 client_secret.json 文件所在的位置。

希望这会有所帮助。祝你好运!