正确设置Google Sheets附加组件的OAuth范围

3
我开发了一个Google Sheets插件(侧边栏),现在正试图将其放到Google Workspace Marketplace上。
我对需要设置的OAuth范围有些迷惑,这是用户同意屏幕和/或应用配置屏幕(和/或其他地方?)的一部分。
我有几个问题:
1. 我实际需要设置哪些范围?
这是插件所做的事情:
- 读取电子表格中的所有数据,基本上是读取访问权限,以分析公式单元格之间的引用关系(后继和前导)。 - 在用户批准后(每次点击按钮),它将结果写入当前工作表中的新工作表中。 - 在内部错误的情况下,并经过用户批准(每次点击按钮),插件会发送包括堆栈跟踪和可能的其他参数(电子表格和工作表名称)的错误详细信息的电子邮件。 - 在运行期间编写日志,以进行调试和流程改进。日志记录可能包括一些电子表格底层数据。
我找不到任何完整的范围列表,但我的理解是我至少需要以下范围:
https://www.googleapis.com/auth/userinfo.email
https://www.googleapis.com/auth/userinfo.profile
https://www.googleapis.com/auth/spreadsheets

2. 配置应该在哪些范围内?
我找到了至少三个地方保存范围设置。
  1. 在 Google Cloud 平台控制台的 OAuth 同意屏幕设置中(API & Services -> OAuth consent screen
  2. #3 在发布指南中 导航到 Google Workspace Marketplace SDK 设置中的 应用配置 屏幕(请参阅屏幕截图)enter image description here 我找不到达到这个页面的方法,除了如上所述(在控制台中搜索 Google Workspace Marketplace SDK)。看起来它被某种方式隐藏了…我真的不理解。这个屏幕也有 oAuth 范围设置。
  3. appscript.json 文件,如 此处 所述。目前,appscript.json 没有任何范围引用。

1个回答

1

回答您的问题...

Apps Script最终会自动确定脚本需要哪些范围,并在运行脚本时添加它们。

要检查已添加了哪些范围,您应该转到Apps Script项目中的概述,您将能够在项目OAuth范围部分下找到列表:

project scopes

因此,如果您已经运行并授权了与插件对应的脚本,则所需的范围将被添加到那里。

至于范围列表,您可以在这里轻松查看。

由于您正在开发编辑器插件,因此无需将范围添加到清单文件中,除非您想设置显式范围。例如,如果您想更好地控制插件并使用比自动添加的更严格的范围,则应在插件的appsscript.json清单文件中设置它。

一旦您在Apps Script方面完成设置,就可以开始使用Marketplace SDK配置插件。

这样做需要您提供您在Apps Script项目中设置的OAuth范围的完整列表。您在此处输入的OAuth范围应与您在OAuth同意屏幕中显示的内容以及(如适用)appssccript.json清单文件中的内容相匹配。

根据您为插件选择的范围和插件的可见性,您可能需要查看OAuth API verification FAQs documentation

以下API使用的某些范围被视为敏感;请参阅API文档或在Cloud Console中查找锁定图标。如果您的应用程序请求敏感范围,并且不符合任何例外条件(请参见下文),则您需要验证您的应用程序遵循API服务用户数据策略。

因此,如果您的插件正在使用here列出的任何范围,则在公开发布之前,您必须进行验证过程。

参考资料


我已经阅读了添加链接中的大部分文章。我在编辑器概述中看到了范围,所以这些是所需的“什么”范围。至于“在哪里”,我理解需要在Market SDK中添加这些范围,但云控制台中的OAuth同意屏幕配置呢? - OJNSim
您还需要在OAuth同意屏幕中添加范围 - 这主要是为了让用户知道插件需要他们授权的范围。 - ale13
我不确定我理解你最后一条评论关于验证过程的意思。我需要为此做些特别的事情吗?据我了解,一旦应用程序提交发布申请,_应用审核_以及(如果适用)_OAuth验证_将作为流程的一部分进行,是吗? - OJNSim
如果您的插件使用了任何受限范围,您将需要进行单独的第三方安全评估。该过程详见此处 - ale13
明白了,我的问题是这三个过程(如果适用)是否都属于同一个应用程序提交的一部分。也就是说,一旦我按下按钮,如果需要,这些过程就会发生。对吗? - OJNSim
还有一个问题,我的紧急需求实际上是为了提交测试,由我添加为测试用户的其他用户进行测试。当前发布状态为测试,用户类型为外部。这些流程现在会发生吗,还是只有在提交“公开”(将测试状态更改为发布)后才会发生? - OJNSim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接