已发布Google Sheets插件Session.getActiveUser().getEmail()返回空白问题求助
Google Sheets插件安装型onOpen触发器获取域外用户邮箱空白问题
我开发了一款已发布的Google Sheets插件,启动时通过Session.getActiveUser().getEmail()函数验证用户订阅权限。但发现一处异常场景:当表格创建者将表格分享给域外用户时,该用户在安装型onOpen触发器中调用此方法会返回空白值;其他场景下,无论用户是否为表格所有者或同域用户,均可正常获取邮箱。
插件已配置OAuth Scope:https://www.googleapis.com/auth/userinfo.email,除安装型onOpen触发器外,其他场景均运行正常。
根据官方文档说明,此方法返回空白是因为“安全策略不允许访问用户身份”,但我不清楚具体是哪项安全策略导致。我能理解域外表格请求域内用户邮箱受限的情况,但当前场景恰好相反。
请问是否有解决办法?还是说这是安装型onOpen触发器无法规避的授权问题?
编辑1:
有技术回答指出需在AuthMode.FULL模式下运行才能获取该信息。但插件已被用户启用,且根据官方文档,安装型触发器应运行在AuthMode.FULL模式。
编辑2:
我修改了安装型onOpen触发器,添加了授权模式日志,确认其确实运行在FULL模式。
内容的提问来源于stack exchange,提问作者Josh Bunzel
相关产品推荐
相关产品推荐

