如何获取 google 电子表格的可共享 link?

How get sharable link of google spreadsheet?

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

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

例如:-

我希望通过获取可共享 link 或将其添加到 public 文件夹中来将我的文件共享给其他用户。

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

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

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

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

您需要更新权限:

考虑到您遇到的错误,我认为是这样的:

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

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