Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Permissions Google应用程序脚本:从电子表格中获取数据而没有查看权限(不可安装触发器)_Permissions_Google Apps Script - Fatal编程技术网

Permissions Google应用程序脚本:从电子表格中获取数据而没有查看权限(不可安装触发器)

Permissions Google应用程序脚本:从电子表格中获取数据而没有查看权限(不可安装触发器),permissions,google-apps-script,Permissions,Google Apps Script,问题是我有各种电子表格(a),其中只有一个人有查看和编辑权限,还有其他人需要这些电子表格中的一些数据(a)对于他们的电子表格(b),他们还需要能够从电子表格中获得数据的更新版本(a) 我现在创建了一个解决方案,使用带on edit功能的可安装触发器(他们必须更改电子表格中的特定字段)来更新数据,但是人们希望有一个按钮/图形,他们可以单击该按钮/图形,或者一个菜单项来从电子表格中获取更新的数据(a) 在我看来,将可安装触发器与按钮/绘图/菜单项相结合是一条死胡同。因此,我的问题是,如果有任何其他可

问题是我有各种电子表格(a),其中只有一个人有查看和编辑权限,还有其他人需要这些电子表格中的一些数据(a)对于他们的电子表格(b),他们还需要能够从电子表格中获得数据的更新版本(a)

我现在创建了一个解决方案,使用带on edit功能的可安装触发器(他们必须更改电子表格中的特定字段)来更新数据,但是人们希望有一个按钮/图形,他们可以单击该按钮/图形,或者一个菜单项来从电子表格中获取更新的数据(a)

在我看来,将可安装触发器与按钮/绘图/菜单项相结合是一条死胡同。因此,我的问题是,如果有任何其他可能授予访问电子表格数据的权限,而不授予查看或编辑数据来源文档的权限


如果有人有想法,那就太好了,提前谢谢你

你将遇到的电子表格中使用的触发器有一些限制。查看详细信息。本质上,和
onEdit
trigger无法访问/修改另一个电子表格,因为
他们无法访问任何需要作为该用户进行身份验证的服务。

为了更新当前电子表格之外的另一个电子表格,我只安装了一个函数和一个菜单项来触发它。(这就是你所说的死胡同吗?)这确实取决于用户更新组,但这对我的安全数据来说是一个好处,因为它需要密钥持有者的知识才能让其他人获得信息。这是
A
B
,这是可能的,但
B
必须具有对
A
电子表格的编辑权限

不,
B
无法从
A
获取信息,除非他们至少作为查看者有权访问该信息。您不能将查看权限授予单个单元格,这基本上是您想要做的

如果没有这种能力,解决方案更多的是构建数据流。在一次用户证明他们不能被信任定期更新团队的事件中,我将自己创建为
0
。我拥有
A
B
的权限。我从
0
运行函数来访问
A
和更新
B
,这也会向他们发送一封电子邮件,以便所有人都知道上次更新发生的时间。为什么我不使用
A
电子表格来运行函数,因为从
0
我可以访问它并将其写入
B
,而不必查看数据。这是无知的面纱。我从未真正打开过
A
0
仍然是空的


尽我所能

您将遇到的电子表格中使用的触发器有一些限制。查看详细信息。本质上,和
onEdit
trigger无法访问/修改另一个电子表格,因为
他们无法访问任何需要作为该用户进行身份验证的服务。

为了更新当前电子表格之外的另一个电子表格,我只安装了一个函数和一个菜单项来触发它。(这就是你所说的死胡同吗?)这确实取决于用户更新组,但这对我的安全数据来说是一个好处,因为它需要密钥持有者的知识才能让其他人获得信息。这是
A
B
,这是可能的,但
B
必须具有对
A
电子表格的编辑权限

不,
B
无法从
A
获取信息,除非他们至少作为查看者有权访问该信息。您不能将查看权限授予单个单元格,这基本上是您想要做的

如果没有这种能力,解决方案更多的是构建数据流。在一次用户证明他们不能被信任定期更新团队的事件中,我将自己创建为
0
。我拥有
A
B
的权限。我从
0
运行函数来访问
A
和更新
B
,这也会向他们发送一封电子邮件,以便所有人都知道上次更新发生的时间。为什么我不使用
A
电子表格来运行函数,因为从
0
我可以访问它并将其写入
B
,而不必查看数据。这是无知的面纱。我从未真正打开过
A
0
仍然是空的


尽我所能

我也面临着类似的问题

我想我找到了一个解决办法,但不能保证。 我使用了
importrange
函数,我打算通过脚本控制该函数。 我试过flush函数,发现它是一个很好的触发器,可以强制
导入
工作,我将其添加到
菜单中(以防万一)

现在,我不想让
B
用户知道
A
SS的唯一地址。 (查看
导入功能时)


我正在使用
B
SS中的
importrange
功能保护和隐藏工作表。我在
B
SS中为隐藏的表单使用额外的内部引用

我也面临着类似的问题

我想我找到了一个解决办法,但不能保证。 我使用了
importrange
函数,我打算通过脚本控制该函数。 我试过flush函数,发现它是一个很好的触发器,可以强制
导入
工作,我将其添加到
菜单中(以防万一)

现在,我不想让
B
用户知道
A
SS的唯一地址。 (查看
导入功能时)

我正在使用
B
SS中的
importrange
功能保护和隐藏工作表。我在
B
SS中为隐藏的表单使用额外的内部引用

我可能会
function onOpen() {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var menuEntries = [];
    menuEntries.push({name: "Refresh", functionName: "SheetFlush"});
    ss.addMenu("Menu", menuEntries);
}

function SheetFlush() {
    SpreadsheetApp.flush();
}