如何在Google Apps脚本自定义函数中获取“活动用户”的用户属性

Fra*_*ank 3 google-apps google-apps-script google-apps-marketplace custom-function google-apps-script-addon

我发布了一个 Google Apps 脚本独立电子表格插件,但在使用PropertiesService.getUserProperties()自定义函数时遇到了一些问题。

如果用户 A 安装了该附加组件并在用户属性中保存了一些数据。然后用户A将电子表格共享给用户B。当用户B运行自定义函数时,他可以获取用户A的用户属性中保存的数据。这不是我认为用户属性的工作原理。用户 A 和 B 都应该获得自己保存的数据。

那么共享电子表格的活跃用户是什么?我不希望所有电子表格查看者都获取电子表格创建者保存的数据。我在代码或“云平台项目”选项中做错了什么吗?

换句话说,如何在共享电子表格中为不同查看者获取保存在用户属性中的不同数据?

我尝试在自定义函数中获取活动用户电子邮件,但它不起作用。

请注意,我无法Session.getActiveUser在自定义函数中使用,因为Google Apps脚本自定义函数不支持会话服务。它将得到无效权限异常。

https://developers.google.com/apps-script/guides/sheets/functions#Advanced

谢谢,

Fra*_*ank 5

在编写了大量的代码来测试不同的场景之后,我相信它没有办法解决上述问题。

所以我将使用一种解决方法来实现目标。万一有人也遇到麻烦。我会把我的测试结果放在这里。

如果 Google 帐户 A 将电子表格共享给 Google 帐户 B。

  1. 在自定义函数中,他们都获得了A的用户属性。
  2. 从网页中,通过script.run调用服务器函数,A和B都可以获得自己的用户属性。