Google App脚本PropertiesService.getScriptProperties()的作用范围是什么?
关于Google Apps Script ScriptProperties共享范围的解答
核心结论
PropertiesService.getScriptProperties()获取的属性是直接绑定到你的Apps Script项目本身的,不存在域名隔离逻辑:
如果你将Gmail Add-on公开上架到Workspace Marketplace,所有安装该插件的用户(无论归属哪个独立域名)读写的都是同一套ScriptProperties数据。你举的示例场景中,user1@domain1.com将url属性设为google.com后,user2@domain5.com读取该属性拿到的值同样是google.com。
同域名用户共享配置的正确实现方案
ScriptProperties本身不支持域名维度的自动隔离,你可以通过自定义key规则实现需求:
- 首先通过
Session.getActiveUser().getEmail().split('@')[1]获取当前用户的所属域名 - 存储配置时将域名作为属性key的前缀,例如对应
url配置项,实际存储的key为url_domain1.com、url_domain5.com - 读写时根据当前用户的域名拼接对应key,即可实现同域名用户共享配置、跨域名配置互不干扰的效果
注意事项
- ScriptProperties的总存储上限为9KB,若你服务的域名数量较多、配置数据量大,建议改用Cloud Firestore、Google Sheets等存储方案
- 建议增加权限校验逻辑,仅允许对应域名的管理员可修改所属域名的配置,普通用户仅开放读权限,避免配置被恶意篡改
内容的提问来源于stack exchange,提问作者GovZ
相关产品推荐
相关产品推荐

