我一直在尝试创建一个Google表格公式,以通过MailApp发送电子邮件。
/**
*
*
*@customfunction
*/
function SendIssueMails(x)
{
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("IssueCourses");
var email = sheet.getRange(x).getValue();
var subject = "Issue updated that needs resolution";
var body = "Please go to your issue tracker. You have been assigned an Issue that need resolution";
MailApp.sendEmail(email, subject, body);
return "sent";
}
这是我编写的代码,当我将此公式放在带有x作为电子邮件ID的表格中时,它说我没有权限。我通过发送手动电子邮件在appscript中授予了权限,但它仍然显示所需的权限,我不知道在何处授予该权限。
答案 0 :(得分:1)
如果您的自定义函数抛出错误消息“您没有调用X服务的权限。”,则该服务需要用户授权,因此无法在自定义函数中使用。
您不能在自定义功能中使用MailApp之类的服务。您需要以其他方式触发发送电子邮件。也许installable trigger配置为在编辑某个单元格时运行?
答案 1 :(得分:0)
Diego是正确的,电子表格上的自定义功能无法请求访问个人数据,因此您只能使用此列表中的服务:
支持的服务
缓存
HTML
JDBC
语言
锁
地图
属性
试算表:
无法打开其他电子表格(SpreadsheetApp.openById()或SpreadsheetApp.openByUrl())。
网址提取
实用工具
XML
找不到您的GmailApp
如果您的自定义函数抛出错误消息“您没有调用X服务的权限。”,则该服务需要用户授权,因此无法在自定义函数中使用。
如文档所述:
要使用除上面列出的服务以外的其他服务,请创建一个自定义菜单 运行Apps脚本功能而不是编写自定义 功能。从菜单触发的功能将询问用户 必要时进行授权,因此可以使用所有应用 脚本服务。
如果您正在寻找如何从表格中调用函数的方法,则应查看“自定义”菜单: