如何获取Google电子表格的可共享链接?

时间:2020-07-31 07:35:58

标签: google-apps-script google-sheets web-applications permissions sharing

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

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

例如:- enter image description here

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

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

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);

1 个答案:

答案 0 :(得分:1)

您需要更新权限:

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

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

要解决此问题,请创建一个新的 Project版本,然后根据您的要求检查您的权限(或更新该Web应用程序的其他任何设置,例如 Execute as as >,它也会提示授权弹出窗口。