【问题标题】:How to show a google drive html link that is shared with specific people in iframes in google site如何在谷歌网站的 iframe 中显示与特定人员共享的谷歌驱动器 html 链接
【发布时间】:2015-02-02 10:39:50
【问题描述】:

为了在 iframe 中显示 google drive html 文档,我们首先共享文件“Public on the web”并获取它的文档 ID。然后将其附加到托管链接(https://googledrive.com/host/)(在浏览器上运行此链接将显示 html 文件的输出,而不是简单地显示该文件的内容)并作为 src 提供给 iframe 标记。 但我的要求是不要公开共享文件,因为它包含敏感信息。我们可以设置谷歌网站的权限,只有特定的人才能访问它。为此,html 文件仍应公开共享,这在我的情况下不应该发生。 此外,在这种情况下,附加权限限制为托管链接(https://googledrive.com/host/)的文件的文档 ID 将给出 404 错误。请帮助我。提前谢谢。

【问题讨论】:

  • 如果您必须向人们授予访问权限以便他们可以看到 google 站点页面,为什么不将 google 文档的权限更改为“与特定人员共享”所以他们必须登录才能访问
  • 如果我限制页面,那么我无法在谷歌网站上显示该页面(无论谷歌网站共享权限是什么)。听起来怪怪的。该页面应该是公开的,以便在 google 网站上显示。

标签: javascript html iframe google-sites


【解决方案1】:

一种解决方案是运行获取 HTML 文件内容的代码,然后使用带有 HTML 服务的 Apps 脚本小工具来显示 HTML 文件。

  • 将 Google Apps 小工具添加到您的站点。
  • 进入您网站的脚本部分。
  • 创建一个新的 Apps Script 脚本
  • 编写代码以获取 HTML 文件内容
  • 返回该 HTML
  • 将脚本添加到小工具

    您驱动器中的 HTML 文件无需与任何人共享。但是,Apps 脚本必须以您的身份运行,才能访问该文件。

此代码会在站点打开时将 HTML 注入应用小工具。我已经测试过了,它可以工作。它从我的云端硬盘获取 HTML 文件,将 HTML 转换为字符串,然后将 HTML 提供给站点:

function doGet() {

  var fileHTML = DriveApp.getFileById('The file ID');
  var theHTML = fileHTML.getBlob().getDataAsString();

  return HtmlService.createHtmlOutput(theHTML)
    .setSandboxMode(HtmlService.SandboxMode.IFRAME);
};

要获取驱动器中 HTML 文件的文件 ID,请右键单击文件名,然后选择“获取链接”。然后复制链接。该链接内是文件 ID。

【讨论】:

    猜你喜欢
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多