我尝试设置执行脚本的用户的Gmail签名(执行应用程序:"用户访问网络应用程序&#34 ;; 谁可以使用以下功能访问应用"我的域内的任何人"):
function setSignature(signature) {
var newSig = Gmail.newSendAs();
newSig.signature = signature;
Gmail.Users.Settings.SendAs.patch(newSig, "me", Session.getActiveUser().getEmail());
}
其中签名是一些HTML。提交表单时,从客户端脚本调用此函数:
google.script.run.withSuccessHandler(signatureSuccess).setSignature($("#signatureParent").html());
使用包含表单的HtmlService为用户提供Web应用程序。 Gmail API已在高级Google服务窗口和Google API控制台中启用。
我的问题是,当我尝试执行该功能时,我收到以下控制台错误消息:
该消息指出缺少auth范围 gmail.settings.basic 。尽管用户在提供任何html之前授权了Web应用程序,但这仍然存在:
如何修复或解决此问题?奇怪的是我之前有过这样的工作,所以我不知道自己做错了什么。
修改
我注意到如果我只使用以下功能创建一个简单的Apps脚本:
function testSet() {
var testSig = "signature";
var newSig = Gmail.newSendAs();
newSig.signature = testSig;
Gmail.Users.Settings.SendAs.patch(newSig, "me", Session.getActiveUser().getEmail());
}
请忽略我获得的所有其他权限以授权:
如果我点击允许就可以了!如此清楚"管理您的基本邮件设置" a.k.a. auth范围 gmail.settings.basic 是必需的,并且在更复杂的脚本中要求不是。
那么我该如何强制获取该权限,或者如何重写我的脚本以获得所需的正确权限集?