【发布时间】:2013-06-17 21:45:08
【问题描述】:
我已经通过 Google Appsscript 实现了模板/文档生成(至少是概念证明)。我可以将此 GAPSS 脚本发布为 Web 服务,并且可以从 GAE 调用 give service。
这已经是可行的了:
- 采用文件 ID(模板)并将字段/值合并为参数的 GAPPS 脚本
- GAPPS 脚本将模板复制到新文件(=结果文件)并执行合并(基本上增强了查找/替换)。
- 发布脚本网络服务
- 从 appengine 调用它
问题在于 GAE 应用程序已对 Google 或 Google Apps 用户进行身份验证,并且模板只能由代表 GAE 调用脚本的用户访问。生成的合并文件也必须写回给定用户的驱动器。因此,脚本应该以经过 GAE 身份验证的用户身份运行。
我知道有范围
https://www.googleapis.com/auth/drive.scripts
这允许我将脚本安装到 Google 的驱动器中?还是?
主要问题是这里应该遵循什么策略:
- 我是否保留某个服务帐户拥有的脚本?
- 我是否应该将脚本复制给每个应用程序用户(问题:保持版本更新,防止最终用户修改脚本等)
- 我能否对脚本进行身份验证,以便脚本可以作为发出请求的同一 GAE 用户执行?也许使用 API 控制台中的“浏览器应用程序密钥”?
- 也许我应该调用客户端(从 web 应用程序?)然后做相反的事情.. GAS 脚本调用 GAE 以获取说明,身份验证问题已经解决了......但是我必须将模板流式传输到GAS 脚本?
- 或者我应该查看https://developers.google.com/accounts/docs/CrossClientAuth,这适用于这种情况吗?
- 另一个要考虑的选项是 AppsScript 中的 UrlFetch/OAuthConfig,但这让我没有 DocsList 和 DocumentService 的便利
选项太多...最好的策略是什么?
【问题讨论】:
标签: google-app-engine google-apps-script google-drive-api google-oauth