GAS身份验证如何在Google网站中工作

问题描述

我有一个非常简单的GAS项目。

function doGet(e) {
  
  //User Database
  var username = Session.getActiveUser().getEmail(); //Authenticate using current User Email
  var page = HtmlService.createTemplateFromFile("menu");
  page.userName = username;
  return page.evaluate().setSandBoxMode(HtmlService.SandBoxMode.IFRAME).setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);;
  
}

此脚本由x@y.com(企业域上的GSuite帐户)拥有 通过嵌入已发布的Web应用程序链接,将其发布在“新Google站点页面上。 (/exec

Google站点网站已共享给n@z.com(不同GSuite Business域上的不同用户) 当您打开Goog​​le站点页面时,在chrome隐身窗口中以x@y.com登录,脚本可以正常显示。 如果您打开Goog​​le站点页面,在chrome浏览器中以n@z.com身份登录的新的隐身窗口中,您可以看到该页面由google网站提供,但该应用程序本身已被“您需要访问”提示取代来自Google的页面

You Need Access Screenshot

如果以n@z.com身份登录时打开已发布的Web应用程序链接,则会出现“查看权限”初始页面,然后该应用程序可以正常运行。 此时打开Goog​​le网站,该应用仍显示“您需要访问权限”

在这里要做什么才能在Google网站上启用对应用程序的授权访问?

Publish Settings

解决方法

我认为运行时的STABLE版本中的权限实现中存在错误。有了问题中所示的权限,该应用程序的行为就好像您需要将脚本本身共享给另一个域中的用户一样。 这仍然无法启用访问权限。

解决方案是启用V8运行时,重新发布该应用,然后该应用立即按预期运行。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...