我需要两个分离形式可以从我的电子表格菜单访问。在发现了一些麻烦后,我从Mogsdad发现了这个很好的答案: Single Google Form for multiple Sheets通过电子表格菜单启动谷歌表格
我用他的代码将表单嵌入到使用htmlservice的uiapp中。所以,我的代码看起来酷似他:
function launchTecForm() {
var TecformID = '1_some_form_ID';
var Tecform = FormApp.openById(TecformID);
var TecformUrl = Tecform.getPublishedUrl();
var response = UrlFetchApp.fetch(TecformUrl);
var formHtml = response.getContentText();
var htmlApp = HtmlService
.createHtmlOutput(formHtml)
.setTitle('Tec-Response')
.setWidth(500)
.setHeight(450);
SpreadsheetApp.getActiveSpreadsheet().show(htmlApp);
}
所以这段代码完美地工作,直到大约2-3个星期前(不能说完全一致),但此后我要么得到的登录,提示登录到谷歌,应用程序,或者我得到一个服务器错误。表单被设置为publick,所以不需要任何登录。最后登录也不工作,因为它然后它要求允许cookie(这是允许在浏览器设置。我猜html服务是无法处理登录到cookie。)
那么如何获得脚本重新开始工作?我没有改变任何东西,它仍然与来自Mogsdad的答案中的代码相同。
Ty for any help-attempts!
只要您的脚本包含任何需要经过验证的用户帐户的方法,身份验证机器人就会进入并需要登录。 (例如MailApp,GmailApp,DriveApp ...)我注意到即使代码已被注释掉,情况也是如此。所以您可能需要查看脚本文件中的其他内容。 ...我不明白你对cookies的评论,你能否详细说明一下? – Mogsdad
因此,应该调用的表单不需要任何登录信息。它是完全公开的。我需要登录时遇到的问题是,在HtmlService弹出框中,登录无法完成。 Google应用程序建议“在浏览器设置中禁用Cookie”,登录时需要这些。 (事实上,他们已启用,我的想法是,问题将是HtmlService传输登录输入...但这只是一个猜测)。 – user2671460
但我的主要问题仍未解决:当前函数在HtmlService-popup中未打开任何窗体(即public)。它总是给我一个服务器错误,这是没有进一步指定。我不知道在哪里寻找解决方案。 – user2671460