我一直在尝试允许我编写的程序访问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。
答案 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 文件所在的位置。
希望这会有所帮助。祝你好运!