如何获取谷歌电子表格的共享链接?

Posted

技术标签:

【中文标题】如何获取谷歌电子表格的共享链接?【英文标题】:How get sharable link of google spreadsheet? 【发布时间】:2020-07-31 07:35:58 【问题描述】:

我使用 web-apps-script 创建了一个 google 电子表格,并希望为其分配一个仅查看访问权限。

我该怎么做,我尝试了很多不同的方法,但都不起作用,并且一直给我错误。

例如:-

我想要通过获取可共享链接或将其添加到公共文件夹中的任何方法将我的文件共享给其他用户。

首先我尝试使用脚本共享它,但收到错误:-

var ssNew = SpreadsheetApp.create("allowance "+(new Date));
var ss = SpreadsheetApp.openByUrl(ssNew.getUrl());
var fileId = ss.getId();
DriveApp.getFileById(fileId).addEditor("sritu@gmail.com");

然后我尝试将电子表格移动到公用文件夹,但没有任何效果,我收到错误:-

var ssNew = SpreadsheetApp.create("allowance "+(new Date));
var folder=DriveApp.getFolderById('0AOexqtJ8UhRxPWUyk9PVxxA');
var id = ssNew.getId();
var file = DriveApp.getFileById(id);
folder.addFile(file);

【问题讨论】:

从报错信息来看,如果你使用manifest文件(appsscript.json)管理范围,作为测试用例,添加https://www.googleapis.com/auth/drive的范围再试一次怎么样? 我该怎么做,它只是一个已发布的应用程序。我不知道该怎么做,可能我得问另一个问题。 感谢您的回复。不幸的是,我无法理解How do I do that its just a published app.。可以问一下具体情况吗? 我对脚本的了解较少,因此不知道从哪个文件或页面开始。我想我应该关闭这个问题。 来自gas-web-app 使用指南,有关网络应用程序的问题必须包括应用程序的发布方式: 1. 以“我”/“访问网络应用程序的用户”身份执行。 2.Access:“任何人”/“任何人甚至匿名” 【参考方案1】:

您需要更新您的权限:

考虑到您遇到的错误,这就是我认为正在发生的事情:

您首先deployed your web app 使用项目版本,并授权网络应用访问用户数据。 在该应用的第一个版本中,DriveApp.getFileById 不是代码的一部分,因此您没有授权调用此方法所需的范围。 部署 Web 应用后,您修改了脚本并添加了DriveApp.getFileById,这需要https://www.googleapis.com/auth/drive.readonlyhttps://www.googleapis.com/auth/drive。 修改脚本后,您没有部署新版本的脚本(系统会提示您Review Permissions 并授权DriveApp.getFileById)。相反,您可能正在尝试通过最新代码(URL 以/dev 结尾)来测试网络应用,这并不一定需要您更新权限。

要解决此问题,请创建一个新的项目版本并根据要求查看您的权限(或更新网络应用的任何其他设置,例如 以应用身份执行 >,也可以提示授权弹窗)。

【讨论】:

以上是关于如何获取谷歌电子表格的共享链接?的主要内容,如果未能解决你的问题,请参考以下文章

Json下载特定表格的链接(谷歌电子表格)

如何链接谷歌电子表格中的两个单元格是否可能?

谷歌脚本从电子表格中获取 json 数据

谷歌电子表格中最大的实用数据集?

谷歌电子表格脚本 - 保护工作表的权限

如何在处理表单之前检查谷歌电子表格?