我有一个由两部分组成的应用程序
- 在用户机器上运行的已安装应用程序(更具体地说:浏览器插件),以及
- 作为独立的 Google Apps 脚本应用程序实现的网络应用程序,使用
HtmlService
.
这两部分相互交谈,并且都通过 Oauth 代表用户访问一些 Google API。为此,我在 Google API 控制台中设置了一个 API 项目。在“API 访问”部分,我为浏览器插件创建了一个“已安装应用程序”类型的客户端。对于 Apps 脚本部分,Google 会自动处理授权流程。
我的问题是谷歌不知道这两个客户是同一个项目的一部分。因此,用户在第一次执行我的应用程序时必须连续执行两个授权步骤(首先是浏览器插件的 Oauth 过程,然后是从 Google Apps 脚本自动生成的授权过程)。这对用户来说非常令人困惑,特别是因为浏览器插件和 Web 应用程序之间的分离是一个用户不必真正关心的实现细节。
有没有办法统一两个授权流程?我知道可以将多个不同的客户端添加到 Google API 控制台中的单个项目中。在我看来,此功能似乎明确适用于与我类似的场景,其中多个应用程序构成了用户认为单一服务的内容。不幸的是,由于 Apps 脚本自动生成授权流程的方式,在 Google Apps 脚本中实现的网络应用程序似乎与 Google API 控制台不兼容。还是我在 API 控制台或 Apps 脚本编辑器中缺少一个选项?