我正在尝试使用以下google脚本发送附有我的Google云端硬盘中可用文件的邮件
var file=DriveApp.getFileById('1qZVK0UZ1jLbDdj10FXZqeAVEodvxEy2Bs');
MailApp.sendEmail('xyz@gmail.com','subject','body',{attachments[file.getAs(MimeType.PDF)]});
当我手动运行上面的脚本时,它运行正常,电子邮件被发送。但是当我使用表单提交触发器运行它时会出现错误"您没有权限调用openById"
会重现问题的步骤?
请帮忙。
答案 0 :(得分:2)
我在Form本身上创建脚本时发现了这一点。
要首先解决问题,请将表单的响应发送到电子表格。
从您的表单转到工具>脚本编辑器...... 复制脚本并删除您在那里设置的任何触发器,您将不再需要此脚本。
现在点击表单中的查看回复按钮以打开电子表格。
现在正常设置你的触发器。您会发现新触发器的第三个下拉列表具有 On form submit 选项。
在提交表单后,只要您的脚本获得授权,该事件就会触发,并且可以访问DriveApp。
一旦你测试并使它工作,我会回到表单并删除那里的脚本项目。我这样做是为了保持整洁,如果我以后改变剧本并忘记哪一个实际上是活着的话,可以避免混淆。
我不知道Google表单是否存在限制他们访问云端硬盘或其他内容的限制。
答案 1 :(得分:2)
我遇到了同样的问题,但觉得必须使用FormResponses Sheet来获取提交事件有点傻(我的意思是在桌面应用程序脚本上有一个触发因为某个原因,对吧?)
我所要做的就是删除并重新添加 From form 的触发器 - > 表单提交。当我添加它时,向我挑战OAuth权限以查看和使用我的Google驱动器。
在此之后,我又能够再次运行Forms Apps脚本提交触发器。