Google drive api 使用服务帐户驱动API访问文档

Google drive api 使用服务帐户驱动API访问文档,google-drive-api,google-api-java-client,Google Drive Api,Google Api Java Client,我正试图通过服务帐户使用google Drive Java API访问google.com域下的电子表格。我需要导出文档中包含的几个工作表 我已经能够创建并使用一个通过JavaAPI使用的服务帐户,但不确定如何进行访问,或者我正在尝试的操作是否可行。我看到了下面的页面:但我使用的服务帐户似乎不太可能被授予访问google.com公司域的权限。我们在谷歌的账户联系人建议我们查看论坛,寻求一些建议 鉴于此,我对该方法有几个问题: 我是否误解了访问要求?更具体地说,是否有方法授予服务帐户访问特定文档的

我正试图通过服务帐户使用google Drive Java API访问google.com域下的电子表格。我需要导出文档中包含的几个工作表

我已经能够创建并使用一个通过JavaAPI使用的服务帐户,但不确定如何进行访问,或者我正在尝试的操作是否可行。我看到了下面的页面:但我使用的服务帐户似乎不太可能被授予访问google.com公司域的权限。我们在谷歌的账户联系人建议我们查看论坛,寻求一些建议

鉴于此,我对该方法有几个问题:

我是否误解了访问要求?更具体地说,是否有方法授予服务帐户访问特定文档的权限? 此任务工作表导出是否更适合电子表格API?该API似乎专注于在电子表格中操作,而驱动器API似乎处理文件/文档管理。 是否需要将文档复制到其他域? 我的猜测是,我们需要复制文档,但我想确保,并确保我正确理解API和访问


谢谢

您有权访问该文件吗?尝试使用方法files.get如果收到200响应,则您有权访问,请尝试查找参数exportlinks 通过这些链接,您可以将文件导出为不同的格式。 否则你就做不到了

只有被授予访问该文件权限的人员才能访问该文件。对于具有域管理员批准的授权的服务帐户,该服务帐户可以模拟该域中的人员。如果模拟的用户没有访问某个文件的权限,则服务帐户也没有访问权限

使用驱动器API导出文件更好,正如您提到的,电子表格API用于管理电子表格的内容

如果要在不修改原始文件的情况下修改信息,请选择“是”


希望这能有所帮助。

您还必须授予要访问的驱动器文件中的服务帐户。只需将您想要访问的文档与Google开发者控制台中显示的电子邮件地址共享即可。XXXXX@developer.gserviceaccount.com

一些澄清,以便我了解您希望实现的目标。。。你为什么要使用服务帐户?您要导出到什么格式?当你说其中包含的几个工作表时,有点像电子表格API,正如您所说,这是在文档中运行的API。我使用的是服务帐户,因为我们有一个软件服务正在运行,需要在没有任何手动干预的情况下按计划检索电子表格。您最好使用常规帐户,而不是服务帐户。请参阅以了解如何做到这一点。至于电子表格api是否更好,这完全取决于您想做什么。您是否乐于下载整个文件驱动器API,还是希望能够访问文件电子表格API的各个区域?感谢您对电子表格/驱动器的参考和说明。根据您所说的,我的用例适合驱动器API,因为我们不需要获取文件的区域。我认为我坚持使用服务帐户——我们没有用于常规访问的永久用户帐户,而且我们不想处理可能出现的令牌过期问题。常规帐户方法有效,但基于链接线程,它更像是使用服务帐户的一种变通方法。谢谢!我没有访问该文件的权限。无法按ID检索,尝试直接获取文件将导致403错误。如果需要管理员批准的委派,我似乎需要将文件迁移到其他域。接受此回答是因为它帮助我确认我没有访问权限,确认了服务帐户的访问权限,并且我现在有了一个路径,可以在其他域下处理文档副本。谢谢!向上投票,因为它对任何其他看到此问题的人都是有用的信息。我发现,在接受解决方案并进行更多实验后,我可能愚蠢地没有意识到您可以直接与服务帐户共享。这使生活更轻松。@jalogar我刚才看到了,但我无法从我的服务帐户中看到共享文件夹