我可以使用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”文件?
答案 0 :(得分:0)
首先,描述Documents List API。请改用Drive API。您可以通过Files.insert()实现相同的目标。
其次,使用spreadsheets api阅读电子表格。您还可以使用Spreadsheet service Google Apps脚本。如果您使用这两者中的任何一个,则无需发布到Web。
答案 1 :(得分:0)
我发现现在不可能。也许在不久的将来;
电子表格API:https://developers.google.com/google-apps/spreadsheets/
几周前,谷歌提出了一些解释这一点的文字:
私有可见性可以替换为公共可见性,这使得Feed可以在未经授权的情况下对“已发布到Web”的电子表格进行操作。工作表,列表和单元格Feed支持公共可见性。例如,公共可见性对于从JavaScript中的网页的客户端上下文访问电子表格的内容非常有用。
只能通过Google Spreadsheets用户界面将电子表格发布到网络上。要开始将电子表格发布到网络,请选择文件>从Spreadsheets用户界面发布到Web,然后单击“开始发布”按钮。
警告:使用公共可见性对不是“发布到网络”的电子表格中的Feed的API请求会产生HTTP 400错误请求响应,并显示消息此URL处的电子表格可以找不到。确保您拥有正确的网址,并且电子表格的所有者尚未将其删除。
警告:对于在Google电子表格的共享对话框的“可见性选项”部分中制作为“公开在网络上”的电子表格,公开可见性不起作用。 “发布到网络”和“公共网络”是共享电子表格的不同方式。我们知道这很令人困惑,并将在未来的API版本中解决它。目前,我们希望此详细警告可以防止混淆。