关于Gmail API权限范围依赖及移除后影响的技术问询
问题背景
我们的应用目前处于审核阶段,正在梳理已获批的权限范围。此前Google Team已批准我们使用以下Gmail API受限权限范围,现正评估是否需要其他范围:
| 敏感度 | API | Scope | 用户可见描述 |
|---|---|---|---|
| Restricted scopes | Gmail API | mail.google.com | Read, compose, send, and permanently delete all your email from Gmail |
| Restricted scopes | Gmail API | auth/gmail.modify | Read, compose, and send emails from your Gmail account |
| Restricted scopes | Gmail API | auth/gmail.compose | Manage drafts and send emails |
咨询问题
- 权限范围之间是否存在依赖关系?若移除
auth/gmail.compose,是否会因mail.google.com依赖该范围而导致报错? - 若移除其他权限范围并申请Google Team审核通过,是否会对已发布的应用造成报错,影响依赖Google服务的用户?
问题解答
这些Gmail API权限范围没有依赖关系,都是独立的权限集合。
mail.google.com是覆盖全功能的超级权限,本身就包含了auth/gmail.compose的所有能力,所以移除auth/gmail.compose后,只要应用调用接口时使用的是mail.google.com的权限凭证,完全不会出现报错。分两种场景判断:
- 若先完成权限移除的审核,再发布更新后的应用版本:只要新版本代码没有调用被移除权限对应的接口,就不会报错。已授权旧版本的用户,其授权凭证仍保留原有权限,直到用户重新授权或你主动刷新权限,但只要新代码不依赖被移除的权限,用户使用不会受影响。
- 若直接在已发布的应用上变更权限(不更新应用版本):这种情况风险很高,因为已发布的代码可能还在调用依赖被移除权限的接口,一旦权限被收回,接口调用会直接报错,影响正在使用的用户。
稳妥的操作是:先在测试环境验证移除权限后的应用功能正常,再提交权限变更审核,审核通过后发布更新后的应用版本,引导用户升级。
内容的提问来源于stack exchange,提问作者Ryan
相关产品推荐
相关产品推荐

