Google apps script 如何在Google API控制台中将Google应用程序脚本web应用程序添加为客户端

Google apps script 如何在Google API控制台中将Google应用程序脚本web应用程序添加为客户端,google-apps-script,google-api-console,Google Apps Script,Google Api Console,我有一个由两部分组成的应用程序 在用户计算机上运行的已安装应用程序(更具体地说,是浏览器附加组件),以及 使用HtmlService将web应用程序实现为独立的Google应用程序脚本应用程序 这两个部分相互交谈,并通过Oauth代表用户访问一些Google API。为此,我在GoogleAPI控制台中设置了一个API项目。在“API访问”一节中,我为浏览器插件创建了一个类型为“Installed Application”的客户端。对于应用程序脚本部分,谷歌会自动处理授权流程 我的问题是谷歌不知

我有一个由两部分组成的应用程序

  • 在用户计算机上运行的已安装应用程序(更具体地说,是浏览器附加组件),以及
  • 使用
    HtmlService
    将web应用程序实现为独立的Google应用程序脚本应用程序
  • 这两个部分相互交谈,并通过Oauth代表用户访问一些Google API。为此,我在GoogleAPI控制台中设置了一个API项目。在“API访问”一节中,我为浏览器插件创建了一个类型为“Installed Application”的客户端。对于应用程序脚本部分,谷歌会自动处理授权流程

    我的问题是谷歌不知道这两个客户是同一个项目的一部分。因此,用户在第一次执行我的应用程序时,必须连续执行两个授权步骤(首先是浏览器加载项的Oauth过程,然后是从Google Apps脚本自动生成的授权过程)。这对用户来说是非常混乱的,尤其是因为浏览器附加组件和web应用程序之间的分离是一个实现细节,用户不应该真的去麻烦它


    有没有办法统一这两个授权流?我知道可以在GoogleAPI控制台中向单个项目添加几个不同的客户端。在我看来,这个特性显然是为类似于我的场景设计的,在这种场景中,多个应用程序构成了用户认为的单一服务。不幸的是,由于应用程序脚本自动生成授权流的方式,在谷歌应用程序脚本中实现的web应用程序似乎与谷歌API控制台不兼容。还是我在API控制台或应用程序脚本编辑器中缺少了一个选项?

    供将来参考:我发现谷歌会在谷歌API控制台中为每个谷歌应用程序脚本项目自动创建一个API项目。这似乎是一个相当新的功能。对我来说,一个困难是,当人们进入API控制台,单击左上角当前打开的任何项目的名称并选择“打开”时,这些API项目都不会出现。显然,实现自动生成的API项目的唯一方法如下:

  • 转到drive.google.com并打开google应用程序脚本项目
  • 选择“资源-->使用谷歌API…”
  • 在弹出窗口中,单击指向GoogleAPI控制台的链接
  • 原则上,这应该允许向项目中添加其他客户端,只要其他客户端都不是谷歌应用程序脚本项目。我还没能测试它,因为它仍然不能解决我的具体问题:从用户的Gmail帐户发送电子邮件似乎是Google Apps脚本独有的功能,我找不到用于此操作的Oauth2作用域。因此,我仍然无法在单个授权流中请求所有必需的权限。但是,如果阅读本文的任何人在不同的Oauth2作用域中有类似的问题,上面的说明应该可以为您解决


    无论如何,我同时解决了我的问题,不再使用Google Drive上传文件。

    谢谢!这是我发现的第一个提到这个的地方。。。在浏览了一页又一页的谷歌文档之后!仅供参考:现在可以。