谷歌应用程序脚本会话信息对Gmail帐户和其他工作区域帐户的工作方式不同吗



我正在Google Apps script for GSheets中编写一个注销脚本,该脚本允许用户从单元格中的下拉列表中选择自己的名称,然后如果名称与当前活动帐户匹配,则会运行另一个函数来锁定行等。我的gmail帐户上一切都很好,但是,当客户端尝试使用谷歌管理的非gmail域帐户运行脚本时,电子邮件地址检查失败。我正在等待客户端向我发送日志信息,因为我没有权限访问他们文件中的日志信息,但想看看是否有其他人遇到过这个问题。

在修改了公司和用户名的示例代码中,代码不起作用,但如果我将atDomainString设置为"@gmail.com";并将姓名添加到我的gmail地址,然后在我的帐户下运行,确实如此。

const atDomainString = "@redactedcompany.com";
const name = "JSmith";
function userMatchesSignature(name) {
let user = Session.getEffectiveUser().toString().toLowerCase();
let signUser = (name + atDomainString).toLowerCase();
Logger.log("User: <"+user + "> vs <" + signUser +">");

return user === signUser;
}

尝试获取他们的错误消息以确认发生了什么。但很可能他们阻止了对客户端ID的访问。因为试图访问用户数据的脚本可能会被阻止。

根据您在项目中使用的范围,他们可能需要验证应用程序https://support.google.com/cloud/answer/7454865

最佳实践

  • 使用域帐户而不是免费的Gmail帐户创建项目。因为他们可能会遇到范围问题。在他们的域中,他们可以将应用程序标记为内部应用程序

最新更新