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

时间:2013-05-26 17:35:52

标签: google-apps-script google-api-console

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

  1. 在用户计算机上运行的已安装应用程序(更具体地说是一个浏览器插件)
  2. 使用HtmlService实现为独立Google Apps脚本应用的网络应用。
  3. 这两个部分相互通信,并通过Oauth代表用户访问某些Google API。为此,我在Google API控制台中设置了一个API项目。在“API Access”部分中,我为浏览器插件创建了一个“Installed Application”类型的客户端。对于Apps脚本部分,Google会自动处理授权流程。

    我的问题是Google不知道这两个客户是同一个项目的一部分。因此,用户首次执行我的应用时必须连续执行两个授权步骤(首先,浏览器插件的Oauth流程,然后是Google自动生成的授权流程)应用脚本)。这对用户来说非常混乱,特别是因为浏览器插件和Web应用程序之间的分离是一个实现细节,用户不应该真正打扰它。

    有没有办法统一这两个授权流程?我知道可以在Google API控制台中为一个项目添加几个不同的客户端。在我看来,这个功能明确地用于类似于我的场景,其中多个应用程序组成了用户所感知的单个服务。遗憾的是,由于Apps脚本自动生成授权流的方式,在Google Apps脚本中实施的网络应用似乎与Google API控制台不兼容。或者我错过了API控制台或Apps脚本编辑器中的选项?

1 个答案:

答案 0 :(得分:2)

供将来参考:我发现Google会自动在Google API控制台中为每个Google Apps脚本项目创建一个API项目。这似乎是一个相当新近的功能。对我来说一个难点是当一个人进入API控制台时,这些API项目没有出现,点击左上角当前打开的任何项目的名称并选择“打开”。显然,达到自动生成的API项目的唯一方法如下:

  1. 转到drive.google.com并打开Goog​​le Apps脚本项目。
  2. 选择“资源 - >使用Google API ...”。
  3. 在弹出窗口中,点击指向Google API控制台的链接。
  4. 原则上,这应该允许向项目中添加其他客户端,只要其他客户端都不是Google Apps脚本项目。我无法对此进行测试,因为它仍然无法解决我的具体问题:从用户的Gmail帐户发送电子邮件似乎是Google Apps脚本独有的功能,我无法找到Oauth2的范围操作。因此,我仍然无法在单个授权流程中请求所有必需的权限。但是,如果正在阅读此内容的任何人在使用不同的Oauth2范围时遇到类似问题,则上述说明应该为您解决。

    无论如何,我在此期间通过不再使用Google云端硬盘上传文件解决了我的问题。