【发布时间】:2015-03-30 06:39:43
【问题描述】:
我正在尝试通过服务帐户使用 Google Drive Java API 访问“google.com”域下的电子表格。我需要导出文档中包含的几个工作表。
我已经能够创建和使用服务帐户(通过 Java API 使用),但不确定如何进行访问,或者我正在尝试做的事情是否可行。我看到了以下页面:https://developers.google.com/drive/web/delegation,但我正在使用的服务帐户似乎极不可能被授予访问 google.com 公司域的权限。我们在 Google 的帐户联系人建议我们查看论坛以获取一些建议。
鉴于此,我有几个关于方法的问题:
- 我是否误解了访问要求?更具体地说,有没有一种方法可以授予服务帐户对特定文档的访问权限?
- 此任务(工作表导出)是否更适合电子表格 API?该 API 似乎专注于在电子表格中操作,而驱动 API 似乎处理文件/文档管理。
- 是否需要将文档副本复制到其他域?
我的猜测是我们需要复制文档,但我想确定一下,并确保我理解 API 并正确访问。
谢谢!
【问题讨论】:
-
一些澄清,以便我可以了解您想要实现的目标...您为什么使用服务帐户?你要导出成什么格式?当您说“其中包含的几个工作表”时,这有点导致电子表格 API,正如您所说,它是在文档中运行的 API。
-
我正在使用服务帐户,因为我们有一个软件服务正在运行,它需要在没有任何人工干预的情况下按计划检索电子表格。
-
您最好使用普通帐户而不是服务帐户。请参阅stackoverflow.com/questions/19766912/… 了解如何执行此操作。至于“电子表格api更好”,这完全取决于您想要做什么。您是否愿意下载整个文件(Drive API),还是希望能够访问文件的各个区域(Spreadsheet API)?
-
感谢您对电子表格/驱动器的参考和澄清。根据您所说,我的用例适合 Drive API,因为我们不需要抓取文件的区域。我想我坚持使用服务帐户——我们没有用于常规访问的永久用户帐户,并且我们不想处理可能的令牌过期问题。常规帐户方法有效,但基于链接的线程,感觉更像是使用服务帐户的解决方法。
标签: google-drive-api google-api-java-client