2

我可以创建一个文件并使用 Driver API 授予权限。

对于电子表格,我使用“电子表格 API”。

我给予的许可是:“对任何人公开 - 只读”。情况是我无法阅读电子表格单元格。我可以阅读的唯一方法是添加“发布到网络”,比如詹姆斯·摩尔。代码示例:

String urlString = "https://spreadsheets.google.com/feeds/list/0AsaDhyyXNaFSdDJ2VUxtVGVWN1Yza1loU1RPVVU3OFE/default/public/values";
URL url = new URL(urlString);
ListFeed feed = service.getFeed(url, ListFeed.class); // Then feed.getEntries()

但如果是这样,我如何读取共享文件或如何通过 Java 代码设置“发布到 Web”文件?

4

2 回答 2

0

我发现目前是不可能的。也许在不久的将来;

电子表格 API:https ://developers.google.com/google-apps/spreadsheets/

几周前,谷歌放了几行来解释这一点:

私有可见性可以替换为公共可见性,这使得提要可以在未经授权的情况下对已“发布到 Web”的电子表格进行工作。工作表、列表和单元格提要支持公共可见性。例如,公共可见性对于从 JavaScript 网页的客户端上下文访问电子表格的内容很有用。

只能通过 Google 电子表格用户界面将电子表格发布到网络上。要开始将电子表格发布到 Web,请从电子表格用户界面中选择文件 > 发布到 Web,然后单击开始发布按钮。

警告:对未“发布到 Web”的电子表格上的供稿使用公开可见性的 API 请求会产生 HTTP 400 错误请求响应,并显示消息找不到此 URL 的电子表格。确保您拥有正确的 URL,并且电子表格的所有者没有将其删除。

警告:公开可见性不适用于从 Google 电子表格的共享对话框的“公开范围选项”部分“在网络上公开”的电子表格。“发布到网络”和“在网络上公开”是共享电子表格的不同方式。我们知道这很令人困惑,并将在 API 的未来版本中解决它。目前,我们希望这个详细的警告可以防止混淆。

于 2013-08-31T19:17:35.093 回答
0

首先,文档列表 API 被弃用。请改用 Drive API。您可以通过Files.insert()实现相同的目标。

二、使用电子表格api读取电子表格。您还可以使用Google Apps Script 的电子表格服务。如果您使用这两者之一,则不必发布到网络上。

于 2013-08-05T23:42:03.540 回答