【发布时间】:2016-03-23 18:37:20
【问题描述】:
我在工作场所经常使用 AppsScript。我在 AppsScript 中构建了许多自定义 OAuth2.0 流,允许应用程序调用 Google 的 REST API,并且我还启用了“内置”API 交互对象(GmailApp、CalendarApp 等)。如果您启用任何内置 API,脚本编辑器会将相关范围添加到项目信息中,然后在 Web 应用首次加载时询问用户与这些 API 交互的权限。
如果我需要与 REST API 和少数内置 API 调用对象进行交互,用户需要首先授予内置 API 范围的权限,然后必须遵循单独的 OAuth 流程,用于 REST API .这造成了非常丑陋的用户体验。
有没有办法将 REST API 范围添加到项目信息中的范围列表中,这样当用户首次加载应用程序时,它会要求他们授予项目需要的所有范围的权限?然后,我可以使用 ScriptApp.getOAuthToken() 从脚本会话中检索用户 oauth 令牌,并在所有外部 REST API 调用中使用它。
编辑(~12:00:05 18/DEC/15):
请注意,我已经知道如何通过链接到 AppsScript 项目的开发者控制台项目启用 API - 我想找到一种方法将所有启用的 API 添加到脚本属性,以便当用户启动应用程序,它要求他们授予权限以代表他们访问所有启用的 API(甚至是 REST API),因此我不需要为 REST API 使用第二个手动 OAuth 流/令牌。
编辑(~14:00:08 18/DEC/15):
我还研究了 Drive 中的导入/导出功能,记录在此: https://developers.google.com/apps-script/import-export 并且找不到任何方法来更改项目的范围(或提供任何范围),这种方式。
【问题讨论】:
标签: rest google-apps-script user-permissions