检查 API 文档似乎不可能获得一个通用 URL 来按预期访问 HTML 文件(在信息亭上显示该 HTML 文件),但需要一点 Google AppsScript 并知道如何为 Google 中的文件构建 URL Drive Hosted site,以下步骤可以解决问题。
我使用Serving content 功能创建了一个 Google AppsScript 网络应用程序,它动态地重新创建已发布 HTML 文件的 URL。因为 Google AppsScript 是作为我自己运行的,所以最终用户不需要验证或批准应用程序,我只需要从我的帐户批准应用程序一次。
现场概念证明在这里:
https ://googledrive.com/host/0B0CnV_gvF2TgNzBlbHBxeUlUYmM/base.html
可以在此处找到带有 JS 调用的“JS 修改前”base.html 页面:
https ://drive.google.com/folderview?id=0B0CnV_gvF2TgNzBlbHBxeUlUYmM&usp=sharing
存储“iframed”HTML 页面的公共文件夹可在此处找到:
https ://drive.google.com/folderview?id=0ByI2-lJS5-g4YXNtNzJkdWduQ1E&usp=sharing
我使用了 2 个不同的帐户来测试即使使用来自不同文件夹和帐户的文件,一切都按预期工作。
AppScript 代码可在此处找到:
https ://script.google.com/d/1c9oJKLvNHrxkmEltTvm9OfZuirFJeJJojAORZ8mnlGKmm2UXy8yROM8Z/edit?usp=sharing
简而言之,步骤: -base.html
是调用 AppScript 并使用回调函数 (showIframe) 处理结果的包装器 - AppsScript 接收 folderId 和 fileId 并为请求的 HTML 文件创建当前 URL,然后调用 showIframe 函数(在调用 AppsScript 服务时的前缀参数)-showIframe
替换已经存在的 iframe 的 src
我使用了 AppsScript,但同样的事情可以通过调用任何能够运行某些代码服务器端并从 ID 检索当前文件名的页面来完成。
请记住,发布的文件夹 ID 不能始终作为公共文件的父级之一检索,因为该文件可以组织到与我正在访问它的用户不同的目录中。在上面的示例中,“iframed”文件未列在 AppsScript 使用的用户的 Google Drive 结构中。