已配置匿名访问权限的Google Apps Script Web App要求登录或报错
该访问异常的常见原因及解决方案
- 部署权限配置不正确
这是最常见的原因。你在部署Web应用时,「谁可以访问」的选项如果设置为「仅限我自己」或者「仅限所属企业组织内用户」,就会触发两类异常:未登录的无痕窗口访问会要求登录谷歌账号,非组织账号登录后无权限访问报错。
对应调整方式:- 如需支持未登录用户直接访问,将权限修改为任何人,甚至匿名用户
- 如需支持外部账号登录后访问,将权限修改为任何人
注意调整权限后必须发布新的部署版本,旧版本的权限不会自动更新,测试部署的URL仅开发者本人可用,不能用作公开访问链接。
- 企业Workspace全局权限限制
绝大多数企业Workspace的管理员会默认关闭组织内Apps Script项目的外部共享权限,即使你单独调整了项目的访问权限,也会被全局策略拦截无法开放给外部用户。这种情况需要联系你的Workspace管理员放开「允许Apps Script向组织外共享」的相关限制。 - 补充代码优化提示
你当前提供的代码本身没有权限相关问题,但存在变量未生效的小问题:你定义的webpagecontent变量没有传入模板,实际返回的页面不会显示拼接的查询参数内容,可参考以下代码修改:
修改后在function doGet(e) { const asset_id = e.queryString; const template = HtmlService.createTemplateFromFile('test.html'); template.webpagecontent = "start text " + asset_id + " end text."; return template.evaluate(); }test.html模板中对应位置插入<?= webpagecontent ?>即可输出拼接后的内容。
内容的提问来源于stack exchange,提问作者Shadi
相关产品推荐
相关产品推荐

