You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

正确配置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()的话,必须配置这个权限,不然会报错。

二、权限范围的配置位置&正确顺序

你说的三个位置都需要配置,但顺序很重要,而且要保证三个地方的范围完全一致,不然上架或运行时会出问题:

  1. 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"
      ]
    }
    
  2. Google Cloud Platform (GCP) 控制台的OAuth同意屏幕
    这里是用户授权时看到的权限列表的来源,也是Google审核的依据。操作:

    • 找到你的Apps Script项目对应的GCP项目(如果是默认项目,需要先关联到自定义GCP项目才能编辑同意屏幕)
    • 进入「API与服务」→「OAuth同意屏幕」,在「已授权的范围」里添加所有刚才列的权限范围,保存即可。
  3. Google Workspace Marketplace SDK 设置
    这里的配置是用来在Marketplace上架时展示给用户的,必须和GCP、appscript.json的范围完全一致,不然上架会失败。操作:

    • 在GCP控制台搜索「Google Workspace Marketplace SDK」进入
    • 到「应用配置」页面的「OAuth权限范围」部分,粘贴所有权限范围,确保和另外两个地方完全匹配,保存。

额外提醒

  • 权限最小化:尽量用最窄的权限,比如用spreadsheets.currentonly代替全范围,这样更容易通过Google的审核,也更符合用户隐私预期。
  • 审核说明:公开上架时,每个权限都要在OAuth同意屏幕的「权限说明」里写清楚用途,比如“需要spreadsheets权限来读取表格数据分析单元格引用关系,并将分析结果写入新工作表”,这样审核更容易通过。

内容的提问来源于stack exchange,提问作者OJNSim

火山引擎 最新活动