如何在 Google 应用程序脚本中获取带有所需电子邮件的 google 表单回复

问题描述 投票:0回答:1

如标题所示,我在尝试自动响应谷歌表单类型收集提交者数据时遇到了一些问题,但我不是表单的所有者 表格如下: 表格样本

下面是我在 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-sheets google-apps-script google-oauth urlfetch google-forms-api
1个回答
0
投票

我无法提供有关使用 Google Apps 脚本服务器端代码来实现您的目标的明确答案。

关于您尝试使用网络浏览器控制台和扩展程序,这些选项不能与使用 Google Apps 脚本的

FetchUrlApp.fetch
直接比较,首先因为此方法在服务器上运行,而上述选项在用户设备上运行。其次,Google Apps 脚本用户无法控制发出 HTTP 请求的所有可能性。

除了 Google Apps 脚本之外,其他云服务(例如 https://www.postman.com)也可以处理 HTTP 请求。

© www.soinside.com 2019 - 2024. All rights reserved.