我已经通过 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 的便利
太多的选择......什么是最好的策略?