在google drive上找不到java中新创建的电子表格

disbfnqx  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(400)

我正试图创建一个电子表格使用谷歌服务帐户的凭证从java,在执行结束时,我得到了一个新创建的电子表格id,但当我打开我的谷歌驱动器,我没有任何表与新创建的id。请帮助我解决这个问题。
这是我用来创建新工作表的方法:

public static void createSheet() throws IOException {
        String title =  LocalDateTime.now().toString() ;
        Spreadsheet spreadsheet = new Spreadsheet()
                .setProperties(new SpreadsheetProperties()
                        .setTitle(title));
        spreadsheet = service.spreadsheets().create(spreadsheet)
                .setFields("spreadsheetId")
                .execute();
        spreadsheetId = spreadsheet.getSpreadsheetId();
        System.out.println("Spreadsheet ID: " + spreadsheet.getSpreadsheetId());
    }

我也试图通过浏览器访问电子表格id,但它要求我获得访问权限。

az31mfrm

az31mfrm1#

服务帐户不是你的。服务帐户是具有自己的google驱动器帐户的虚拟用户。
如果你做一个file.list,你会发现新的工作表是在服务帐户google drive帐户上创建的。
如果您想在自己的帐户上创建它,那么在您的个人驱动器帐户上创建一个目录,与服务帐户共享该目录,就像其他用户简单地获取服务帐户电子邮件地址并以这种方式共享一样。
然后,当您创建工作表时,您需要将父文件设置为您希望将其上载到的目录的id,您可以使用setparents方法将其添加到文件元数据中。

.setProperties(new SpreadsheetProperties()
.setParents(fileid)
.setTitle(title));

如果您想了解更多有关服务帐户如何工作的信息,您可能会发现此视频很有趣。它还精确地显示了如何与服务帐户共享文件夹。2021年以后你应该使用谷歌服务帐户吗?

相关问题