我正在使用新的 Google 协作平台,并且旁边有一个 Google Apps 脚本。我像这样输出了一些 HTML:
function doGet() {
return HtmlService
.createTemplateFromFile('index')
.evaluate()
.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
}
然后我前往 Google 网站并执行以下操作:
Insert -> Embed -> By URL
我像这样插入一个网址:
https://script.google.com/macros/s/*mashes keyboard*/exec
现在我前往:
https://sites.google.com/view/myexamplesite
瞧!我看到了我梦寐以求的嵌入式应用程序脚本。现在这里是让人难过的地方。接下来,我返回站点编辑器并从 Google 域添加我自己的自定义域。然后我前往:
https://www.myexamplesite.com
现在嵌入式 Google Apps 脚本出现如下错误:
script.google.com refused to connect.
并在控制台日志中:
Refused to display 'https://script.google.com/macros/s/*mashes keyboard*/exec' in a frame because it set 'X-Frame-Options' to 'sameorigin'.
太糟糕了。. . . 所以我尝试在嵌入选项中嵌入我自己的 iframe,而不是By URL
像这样:
<iframe
width="100%"
src="https://script.google.com/macros/s/*mashes keyboard*/exec">
</iframe>
现在我前往该网站,它看起来很糟糕,我开始有与iframes
. 我确实在某处读过,现在我找不到参考资料,Google 协作平台确实以一种特殊的方式加载 Apps 脚本,因为它们都是 Google,因此为什么该By URL
选项运行良好且看起来不错。
我将 Apps 脚本项目连接到与域连接的 Google IAM 组织拥有的 Google 控制台项目。然而,没有什么让我更改 Apps 脚本的 URL。
关于如何让 URL 嵌入选项与自定义域一起工作的任何想法?我可以让 Apps 脚本项目成为同一个域的一部分,因此它是同一个来源吗?我是否只需要硬着头皮做很多事情才能在 iframe 中破解它?