如标题所示,我在尝试自动响应谷歌表单类型收集提交者数据时遇到了一些问题,但我不是表单的所有者 表格如下: 表格样本
下面是我在 GAS 中的临时代码:
function submitToGoogleFormWithEmail() {
var formUrl = "https://docs.google.com/forms/d/e/1FAIpQLSdBdRIYCAaxp2FI4n0rVZywcz0Br7n2DOBOIcWSLHP9B67ikA/formResponse";
var email = Session.getActiveUser().getEmail();
var token = ScriptApp.getOAuthToken();
Logger.log(token);
var payload = {
"entry.1507679348": "lucasdo",
"entry.21751216": "dnd",
"entry.528181198": "appscript",
"emailAddress": email
};
var options = {
'method': 'post',
"muteHttpExceptions": true,
'payload': payload,
'headers': {
'Authorization': 'Bearer ' + token,
'Accept': 'application/x-www-form-urlencoded'
}
};
var response = UrlFetchApp.fetch(formUrl, options);
Logger.log(response.getResponseCode());
}
当我测试代码时,它在应用程序脚本的控制台日志中显示错误代码 401。 控制台日志截图
我尝试使用浏览器控制台获取,如果我之前登录并转到以下网址,它就可以工作: https://docs.google.com/forms/d/e/1FAIpQLSdBdRIYCAaxp2FI4n0rVZywcz0Br7n2DOBOIcWSLHP9B67ikA/formResponse?entry.1507679348=lucasdo&entry.21751216=dnd&entry.528181198=appscript&[e邮件受保护]
类似的线程,但没有多大帮助:如何从谷歌应用程序脚本中自动提交需要登录谷歌表单
有人有这个案例的解决方案吗?
我无法提供有关使用 Google Apps 脚本服务器端代码来实现您的目标的明确答案。
关于您尝试使用网络浏览器控制台和扩展程序,这些选项不能与使用 Google Apps 脚本的
FetchUrlApp.fetch
直接比较,首先因为此方法在服务器上运行,而上述选项在用户设备上运行。其次,Google Apps 脚本用户无法控制发出 HTTP 请求的所有可能性。
除了 Google Apps 脚本之外,其他云服务(例如 https://www.postman.com)也可以处理 HTTP 请求。