2

我已经通过 Google Appsscript 实现了模板/文档生成(至少是概念证明)。我可以将此 GAPSS 脚本发布为 Web 服务,并且可以从 GAE 调用提供服务。

这已经有效:

  • 一个 GAPPS 脚本,它采用文件 ID(模板)并合并字段/值作为参数
  • GAPPS 脚本将模板复制到新文件(=结果文件)并执行合并(基本上增强了查找/替换)。
  • 发布脚本网络服务
  • 从 appengine 调用它

问题是 GAE 应用程序已经验证了 Google 或 Google Apps 用户,并且模板只能由代表 GAE 调用脚本的用户访问。生成的合并文件也必须写回给定用户的驱动器。因此,脚本应该以经过 GAE 身份验证的用户身份运行。

我知道有范围

https://www.googleapis.com/auth/drive.scripts

这允许我将脚本安装到 Google 的驱动器中?或者 ?

主要问题是这里要遵循什么策略:

  • 我是否保留某个服务帐户拥有的脚本?
  • 我应该将脚本复制给每个应用程序用户(问题:保持版本更新,防止最终用户修改脚本等)
  • 我可以对脚本进行身份验证,以便脚本可以作为发出请求的同一 GAE 用户执行吗?也许使用 API 控制台中的“浏览器应用程序密钥”?
  • 也许我应该打电话给客户端(从 webapp ?)然后做相反的事情.. GAS 脚本调用 GAE 来获取指令并且身份验证问题不在我的背上......但是我必须将模板流式传输到 GAS 脚本?
  • 还是我应该查看https://developers.google.com/accounts/docs/CrossClientAuth,这适用于这种情况吗?
  • 另一个要考虑的选项是 AppsScript 中的 UrlFetch/OAuthConfig,但这让我没有 DocsList 和 DocumentService 的便利

太多的选择......什么是最好的策略?

4

1 回答 1

0

目前没有很好的方法来调用具有 OAuth 凭据的 Google Apps 脚本部署的 Web 应用程序。您应该在问题跟踪器中记录该请求

Google Apps 脚本网络应用程序在用户首次访问网络应用程序时获得授权。执行此操作的最简单方法是在您的 App Engine 呈现 HTML 中链接到 Apps Script Web 应用程序。用户可以单击该链接并授权(在浏览器中建立正确的 cookie),以便可以在键盘上以用户身份运行脚本。

看一下这个例子(您可以通过查看源代码查看客户端 JS 代码)。“开始共享消息”启动 Apps 脚本身份验证工作流程。

希望这有助于您设想如何布局您的应用程序。

于 2013-06-18T02:52:58.103 回答