Google apps script 如何获取所有用户';使用多个帐户登录时发送电子邮件?
我有一个学校的Google Web应用程序,它有一个G套件的域名,即电子邮件是@theschool.org。该应用程序连接到一个电子表格,其中包含允许访问该应用程序的电子邮件地址(学校教师)的白名单。当页面加载时,所有其他人都会收到“拒绝访问”消息。脚本使用Google apps script 如何获取所有用户';使用多个帐户登录时发送电子邮件?,google-apps-script,Google Apps Script,我有一个学校的Google Web应用程序,它有一个G套件的域名,即电子邮件是@theschool.org。该应用程序连接到一个电子表格,其中包含允许访问该应用程序的电子邮件地址(学校教师)的白名单。当页面加载时,所有其他人都会收到“拒绝访问”消息。脚本使用Session.getEffectiveUser().getEmail()获取用户的电子邮件并将其与列表进行比较 一些用户使用个人设备或Chromebook登录他们的个人gmail帐户和学校的域名帐户。一些实验表明,在这种情况下,Sessio
Session.getEffectiveUser().getEmail()
获取用户的电子邮件并将其与列表进行比较
一些用户使用个人设备或Chromebook登录他们的个人gmail帐户和学校的域名帐户。一些实验表明,在这种情况下,Session.getEffectiveUser().getEmail()
和Session.getActiveUser().getEmail()
始终返回首先登录的帐户的电子邮件地址,这意味着即使用户(稍后)使用其白名单帐户登录,也会被拒绝访问。因此,他们必须注销所有帐户,然后登录学校帐户才能访问
我想获得用户当前登录的所有gmail地址的列表,这样我就可以检查其中是否有任何地址在白名单上,避免了注销和重新登录的需要。在应用程序脚本中是否有这样做的方法
Google关于User类和Session类的文档没有提到任何关于多个帐户的内容
我想获得用户当前登录的所有gmail地址的列表,这样我就可以检查其中是否有任何地址在白名单上,避免了注销和重新登录的需要。在应用程序脚本中是否有这样做的方法
答复:
使用应用程序脚本无法执行此操作
说明:
GoogleApps脚本是一种基于JaveScript、基于云的语言,不在用户的本地计算机上运行。它无法访问本地会话中的任何信息,因此只能查看哪个用户是活动用户、登录并运行脚本
通过应用程序脚本提供的唯一会话信息是:
-获取有关当前用户的信息getActiveUser()
-以字符串形式获取当前用户的语言设置,例如,英语为engetActiveUserLocale()
-获取有关在其权限下运行脚本的用户的信息getEffectiveUser()
-获取脚本的时区getScriptTimeZone()
-获取活动用户唯一的临时密钥,但不会显示用户身份。getTemporaryActiveUserKey()
https://drive.google.com/accounts?continueUrl=[my web app address]
,提供选择帐户或登录新帐户的选项,然后重定向回我的web应用。@AaronDuniganAtLee捕捉得好!消除了错误信息。