我在可安装的onEdit触发函数中调用Toast消息,该函数每次进行编辑时都会在Google表格界面中显示一条消息。对于已登录其Google帐户的用户,该消息将按预期显示,但是当编辑器为匿名时,该消息不会显示在界面中。
我有一个启用了匿名编辑的表格文件(“ 知道链接的人”)。有一个独立的Google Apps脚本项目,该项目已安装了可安装的onEdit触发器。该功能中的所有内容均可对匿名用户和已登录用户成功执行,但Toast消息除外,该消息仅对已登录用户显示。
可安装的onEdit触发器已设置为执行showMessage函数。
触发安装方式:
ScriptApp.newTrigger('showMessage').forSpreadsheet('thefileid').onEdit().create();
showMessage功能:
function showMessage(e) {
var msg = 'Some msg';
var title = 'Some title';
var file = e.source;
var activeSheet = file.getActiveSheet();
file.toast(msg, title);
// do other things
}
将为已登录的用户而不是匿名用户显示该Toast消息。该功能中的“其他内容”按每个人的预期工作。我正在寻找一种向匿名用户显示该消息的方法(或寻找一种向其传达自动消息的方法)。脚本项目是独立的,不是容器绑定的,因此我无法使用Ui类来通知它们。容器绑定脚本不是一个选择,因为该脚本的大小很大并且可以在多个文件上运行。
答案 0 :(得分:4)
如果我的理解正确,那么这个答案如何?不幸的是,即使使用了已安装的OnEdit事件触发器,在编辑匿名用户时,也无法使用toast()
和Class Ui。因此,作为几种解决方法之一,我想建议使用这些图像。幸运的是,insertImage()
可用于这种情况。所以我正在使用这种解决方法。请认为这只是几个答案之一。
在使用此脚本之前,请准备要显示的图像。
在使用此脚本之前,请设置图像的文件ID。并请安装showMessage()
功能的OnEdit事件触发器。
function showMessage(e) {
var fileId = "###"; // Please set the file ID of the image.
var sheet = e.source.getActiveSheet();
var blob = DriveApp.getFileById(fileId).getBlob();
var image = sheet.insertImage(blob, 2, 3);
Utilities.sleep(3000);
image.remove();
}
如果我误解了您的问题,而这不是您想要的方向,我深表歉意。
答案 1 :(得分:0)
如您在documentation中所见:
Apps脚本需要用户授权才能从built-in Google Services或advanced Google services
访问私有数据这意味着您可以与任何人共享脚本,但是他们需要登录才能使用该脚本。