Сценарий, сайты и пользовательский домен Google Apps
Я использую новые Сайты Google, и у меня есть скрипт Google Apps. Я выдал HTML-код примерно так:
function doGet() {
return HtmlService
.createTemplateFromFile('index')
.evaluate()
.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
}
Затем я перехожу на сайт Google и делаю:
Insert -> Embed -> By URL
Я вставляю 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 в опцию embed вместо By URL
вот так:
<iframe
width="100%"
src="https://script.google.com/macros/s/*mashes keyboard*/exec">
</iframe>
Теперь я направляюсь на сайт, и это выглядит ужасно, и у меня начались кошмарные воспоминания о затяжных битвах с iframes
, Я где-то читал, теперь не могу найти ссылку, Сайты Google действительно загружают Сценарий приложений особым образом, потому что они оба Google, поэтому By URL
Вариант работал так хорошо и выглядел красиво.
У меня есть проект Apps Script, связанный с проектом Google Console, принадлежащим организации IAM Google, связанной с доменом. Пока что ничего не позволю мне изменить URL для скрипта приложений.
Любые идеи о том, как заставить вариант встраивания по URL работать правильно с настраиваемым доменом? Могу ли я сделать так, чтобы проект сценариев приложений был частью одного домена, чтобы он имел одинаковое происхождение? Должен ли я просто прикусить пулю и сделать много всего, чтобы взломать ее в iframe?