正确配置Google Sheets插件的OAuth权限范围
你的Google Sheets插件OAuth权限配置指南
先帮你把权限范围和配置位置的问题拆解清楚——这可是上架Google Workspace Marketplace时最容易踩坑的环节,我之前帮好几个开发者捋过这块,放心看:
一、所需的OAuth权限范围
结合你的插件功能,我帮你把必要的范围列出来,还补充了你漏掉的关键权限:
https://www.googleapis.com/auth/spreadsheets:这个完全覆盖你读取全表数据、分析单元格引用关系、写入新工作表的需求,毕竟Dependents/Precedents的API需要读取表格结构,写入操作也需要编辑权限,这个范围足够用。如果想做权限最小化,也可以用https://www.googleapis.com/auth/spreadsheets.currentonly(仅读写当前打开的表格),但如果你不确定未来会不会扩展功能,用全范围也没问题,只是审核时要说明清楚用途。https://www.googleapis.com/auth/userinfo.email+https://www.googleapis.com/auth/userinfo.profile:这俩是用来获取用户的基本身份信息(邮箱、姓名等),如果你的日志需要关联用户,或者发送邮件时用用户的邮箱作为发件人,这俩是必须的;就算不用,OAuth同意屏幕通常也需要至少一个身份类范围,所以建议保留。https://www.googleapis.com/auth/gmail.send:**这个是你之前漏掉的关键权限!**你提到要发送错误详情邮件,这个范围允许插件代表用户发送邮件(不需要读取用户邮箱,刚好匹配你的需求),如果用MailApp.sendEmail()的话,必须配置这个权限,不然会报错。
二、权限范围的配置位置&正确顺序
你说的三个位置都需要配置,但顺序很重要,而且要保证三个地方的范围完全一致,不然上架或运行时会出问题:
appscript.json 文件
这是Apps Script项目的核心配置文件,是插件运行时实际调用的权限来源。操作步骤:- 打开你的Apps Script项目,点击左侧「设置」,勾选「显示appsscript.json清单文件」
- 编辑这个文件,添加
oauthScopes数组,把所有需要的范围放进去,示例如下:
{ "timeZone": "Asia/Shanghai", "dependencies": {}, "exceptionLogging": "STACKDRIVER", "runtimeVersion": "V8", "oauthScopes": [ "https://www.googleapis.com/auth/spreadsheets", "https://www.googleapis.com/auth/userinfo.email", "https://www.googleapis.com/auth/userinfo.profile", "https://www.googleapis.com/auth/gmail.send" ] }Google Cloud Platform (GCP) 控制台的OAuth同意屏幕
这里是用户授权时看到的权限列表的来源,也是Google审核的依据。操作:- 找到你的Apps Script项目对应的GCP项目(如果是默认项目,需要先关联到自定义GCP项目才能编辑同意屏幕)
- 进入「API与服务」→「OAuth同意屏幕」,在「已授权的范围」里添加所有刚才列的权限范围,保存即可。
Google Workspace Marketplace SDK 设置
这里的配置是用来在Marketplace上架时展示给用户的,必须和GCP、appscript.json的范围完全一致,不然上架会失败。操作:- 在GCP控制台搜索「Google Workspace Marketplace SDK」进入
- 到「应用配置」页面的「OAuth权限范围」部分,粘贴所有权限范围,确保和另外两个地方完全匹配,保存。
额外提醒
- 权限最小化:尽量用最窄的权限,比如用
spreadsheets.currentonly代替全范围,这样更容易通过Google的审核,也更符合用户隐私预期。 - 审核说明:公开上架时,每个权限都要在OAuth同意屏幕的「权限说明」里写清楚用途,比如“需要spreadsheets权限来读取表格数据分析单元格引用关系,并将分析结果写入新工作表”,这样审核更容易通过。
内容的提问来源于stack exchange,提问作者OJNSim




