如何限制Google Apps Script仅访问当前Google表格权限?
解决Google表格宏权限过度宽泛的问题
问题描述
开发供第三方使用的Google表格宏时,尝试插入以下代码后,仍无法限制权限范围,希望脚本仅请求当前表格的访问权限,避免用户因过度权限产生不适:
/** * @OnlyCurrentDoc * @NotOnlyCurrentDoc * @include currentonly * @exclude currentonly */ // Configuration for OAuthScopes var CONFIG = { "dependencies": {}, "exceptionLogging": "STACKDRIVER", "runtimeVersion": "V8", "oauthScopes": [ "https://www.googleapis.com/auth/spreadsheets.currentonly" ] };
修正方案
清理冲突注释标签
- 移除
@NotOnlyCurrentDoc、@include currentonly、@exclude currentonly这些与@OnlyCurrentDoc冲突的标签,仅保留@OnlyCurrentDoc——这是官方指定的、用于将权限限制在当前文档的注释标签:/** * @OnlyCurrentDoc */
- 移除
正确配置OAuth权限范围
- 脚本内定义
CONFIG变量的方式不生效,需直接修改项目的appsscript.json文件:- 在脚本编辑器顶部菜单栏点击「查看」→「显示清单文件」,打开
appsscript.json - 修改
oauthScopes字段,仅保留目标权限:{ "dependencies": {}, "exceptionLogging": "STACKDRIVER", "runtimeVersion": "V8", "oauthScopes": [ "https://www.googleapis.com/auth/spreadsheets.currentonly" ] }
- 在脚本编辑器顶部菜单栏点击「查看」→「显示清单文件」,打开
- 脚本内定义
验证权限效果
- 保存脚本与清单文件后重新运行宏,此时请求的权限会显示为「查看和编辑您当前打开的表格」,而非所有表格的宽泛权限。
内容的提问来源于stack exchange,提问作者dlight
相关产品推荐
相关产品推荐

