Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 如何访问已部署且访问权限设置为“仅使用公司帐户”的Web应用?_Google Apps Script_Web Applications_Urlfetch - Fatal编程技术网

Google apps script 如何访问已部署且访问权限设置为“仅使用公司帐户”的Web应用?

Google apps script 如何访问已部署且访问权限设置为“仅使用公司帐户”的Web应用?,google-apps-script,web-applications,urlfetch,Google Apps Script,Web Applications,Urlfetch,我正在尝试启用由URL触发的应用程序脚本 为此,我将脚本部署为Web应用程序,然后在工作表上提供一个按钮,该按钮连接到访问硬编码URL的简单函数 我的问题是,这种机制只有在为任何人部署Web应用时才有效,即使是匿名的。我宁愿将其保留在公司域中,即登录用户 但是,UrlFetchApp.fetch(url)即使对于已登录的用户也不起作用 我该怎么做才能让登录用户“运行”URL?我也遇到了类似的问题,所以我就是这么做的 创建了一个用于检查授权用户的自定义函数 部署脚本,使任何人都可以访问它,甚至是匿

我正在尝试启用由URL触发的应用程序脚本

为此,我将脚本部署为Web应用程序,然后在工作表上提供一个按钮,该按钮连接到访问硬编码URL的简单函数

我的问题是,这种机制只有在为
任何人部署Web应用时才有效,即使是匿名的
。我宁愿将其保留在公司域中,即登录用户

但是,
UrlFetchApp.fetch(url)
即使对于已登录的用户也不起作用


我该怎么做才能让登录用户“运行”URL?

我也遇到了类似的问题,所以我就是这么做的

  • 创建了一个用于检查授权用户的自定义函数
  • 部署脚本,使
    任何人都可以访问它,甚至是匿名的
  • 首先,声明要允许访问的域-

    var authorizedDomains = 'google.com,google.io,google.org'; // comma separated
    // DO NOT add http or https
    // Currently, this setup doesn't support sub-domains (as the regex has not been configured to handle that
    
    然后使用以下函数返回一个布尔值(true或false)-


    所有用户都具有对图纸的编辑权限。这没有帮助。您需要在标头中发送访问令牌。如果这不起作用,请提供:客户端和服务器端。现在我得到了这个:Unauthorized Unauthorized Error 401刚刚创建了一个简单的脚本,在工作表中打印时间戳。由于公司的政策,我无法共享工作表。您不必共享工作表。阅读提供客户端和服务器端脚本。如果我们将您的代码加载到工作表中,您的错误应该是可复制的。我尝试运行此解决方案,但未能成功运行
    userDomain=emailRegex.exec(activeUser)[1]。它的罚款仍然不足。可以做些什么?
    
    function userAccess() {
      var authorisedUser = false;
      var emailRegex = /\@(.*)/;
      var userDomain;
      try {
        userDomain = emailRegex.exec(activeUser)[1];
      } catch (error) {
      }
      var authorizedDomainNames = authorizedDomains.split(',');
      for (var i = 0; i < authorizedDomainNames.length; i++) {
        if (authorizedDomainNames[i] == userDomain) {
          authorisedUser = true;
          break;
        }
      }
      Logger.log(authorisedUser);
      return authorisedUser;
    }
    
    function doGet(e) {
      var htmlFile;
      var title;
      if (userAccess()) {
        htmlFile = 'Index';
        title = 'Index'
        return HtmlService.createHtmlOutputFromFile(htmlFile).setTitle(title);
      }
    }