我正在尝试限制我的OAuth范围,以便在表单提交后发送电子邮件的脚本中使用最少的权限。我想要限制它只拥有必要的权限。如果我点击运行,它会尝试授权正确的权限。如果我设置表单提交触发器,它将要求授权所有电子表格的读取、更改、删除和所有表单的更改。
如果我给予脚本完全访问电子表格和表单的权限,它就能按预期运行。我只是想减少一些权限。截图显示它正在请求比appsscript.json文件中指定的权限更多的权限。
此脚本附加到从我的表单生成的响应电子表格上。
来自我的
如果我给予脚本完全访问电子表格和表单的权限,它就能按预期运行。我只是想减少一些权限。截图显示它正在请求比appsscript.json文件中指定的权限更多的权限。
此脚本附加到从我的表单生成的响应电子表格上。
来自我的
appsscript.json
:"oauthScopes": [
"https://www.googleapis.com/auth/gmail.readonly",
"https://www.googleapis.com/auth/gmail.send",
"https://www.googleapis.com/auth/drive.file",
"https://www.googleapis.com/auth/forms.currentonly",
"https://www.googleapis.com/auth/spreadsheets.currentonly"
]
代码:
/**
* @OnlyCurrentDoc
*/
function onFormSubmit(e) {
var values = e.namedValues;
var htmlBody = 'Hey ' + values['Name of Recipient'] + "!<br>";
htmlBody += values['Name of Sender'] + " thinks you deserve a shoutout! Thank you for being so awesome!";
htmlBody += '<br> <em>' + values['Shoutout'] + " - " + values['Name of Sender'] + "</em>";
htmlBody += '<br><br>';
GmailApp.sendEmail(values['Recipient Email'],'SHOUT OUT!!!!!!','',
{from:'email@domain.com',
htmlBody:htmlBody});
}
Google表格/表单问题/列
时间戳
发件人姓名
收件人姓名
收件人上司姓名
喊话
收件人电子邮件
收件人上司电子邮件
OAuth权限截图:
项目详细信息OAuth范围:
- 查看您的电子邮件消息和设置https://www.googleapis.com/auth/gmail.readonly
- 代表您发送电子邮件https://www.googleapis.com/auth/gmail.send
- 仅查看、编辑、创建和删除您使用此应用程序的特定Google Drive文件https://www.googleapis.com/auth/drive.file
- 查看和管理安装了此应用程序的表单https://www.googleapis.com/auth/forms.currentonly
- 查看和管理安装了此应用程序的电子表格https://www.googleapis.com/auth/spreadsheets.currentonly