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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.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
发布到带有curl的Google脚本时,结果是200,但正文中有错误?_Curl_Google Apps Script_Google Sheets - Fatal编程技术网

发布到带有curl的Google脚本时,结果是200,但正文中有错误?

发布到带有curl的Google脚本时,结果是200,但正文中有错误?,curl,google-apps-script,google-sheets,Curl,Google Apps Script,Google Sheets,我在Google Sheets中创建了一个脚本,用于在POST请求触发时添加数据。当我提交数据时,我的状态为200,但正文中有一个错误。当我查看时,我没有看到Stackdriver日志或错误日志。电子表格中没有数据,在Google脚本中添加console.log不会输出任何内容。我确实在“执行”视图中看到调用 我的目的是让浏览器中的表单发送请求,但由于存在问题,我正在测试一个简单的场景,并对curl URL进行了调整: curl -i -L --data-urlencode "email=som

我在Google Sheets中创建了一个脚本,用于在POST请求触发时添加数据。当我提交数据时,我的状态为200,但正文中有一个错误。当我查看时,我没有看到Stackdriver日志或错误日志。电子表格中没有数据,在Google脚本中添加console.log不会输出任何内容。我确实在“执行”视图中看到调用

我的目的是让浏览器中的表单发送请求,但由于存在问题,我正在测试一个简单的场景,并对curl URL进行了调整:

curl -i -L --data-urlencode "email=somedata" \
  https://script.google.com/macros/s/AKgocbzUSKtUZtPVXm4LeQOwpXRqJDOVC9V7Kkma0EmGxUznk7oDL8/exec
下面是响应,我们看到一个302,后面是一个200,包含一个错误:

HTTP/1.1 302 Moved Temporarily
Content-Type: text/html; charset=UTF-8
Access-Control-Allow-Origin: *
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: Mon, 01 Jan 1990 00:00:00 GMT
Date: Sun, 14 Jun 2020 23:33:08 GMT
Location: https://script.googleusercontent.com/macros/echo?user_content_key=sSMhQRNsxiFYeVa9f8KhsLtfWwMffTJ1h9VMXxrpx8PZUouQuI81rOpU9HVUNZVinPKB6lVtUnXvJzoLpJmHyaoxHawUxAXur5_BxDlH2jW0nuo2oDemN9CCS2h10ox_1xSncGQajx_ryfhECjZEnLDPsqfxfo4OXJqB0RHDEqJbiZKd--hAgEdZ96MVkfE8A--R0AVGgjKjTTaUdz1U2Jcdv3aNHr6K&lib=MmofTYKzVaZ_Rz9u3ET07_aEyosnB3VCm
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
Content-Security-Policy: frame-ancestors 'self'
X-XSS-Protection: 1; mode=block
Server: GSE
Alt-Svc: h3-27=":443"; ma=2592000,h3-25=":443"; ma=2592000,h3-T050=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q049=":443"; ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
Accept-Ranges: none
Vary: Accept-Encoding
Transfer-Encoding: chunked

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
X-Content-Type-Options: nosniff
Access-Control-Allow-Origin: *
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: Mon, 01 Jan 1990 00:00:00 GMT
Date: Sun, 14 Jun 2020 23:33:08 GMT
X-Frame-Options: SAMEORIGIN
Content-Security-Policy: frame-ancestors 'self'
X-XSS-Protection: 1; mode=block
Server: GSE
Alt-Svc: h3-27=":443"; ma=2592000,h3-25=":443"; ma=2592000,h3-T050=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q049=":443"; ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
Accept-Ranges: none
Vary: Accept-Encoding
Transfer-Encoding: chunked

{"result":"error","error":{"name":"Exception"}}%       
顺便说一句,关于日志的问题,当我单击“查看->日志”时,我会在脚本编辑器中看到它们。对于堆栈驱动程序日志记录,它要求我打开“应用程序脚本仪表板”。这里我只在编辑器运行脚本时看到日志

我的日志操作如下,但我也尝试了Logger.log:

const spreadsheetId=SpreadsheetApp.getActiveSpreadsheet.getId; console.log`receivedpost for${spreadsheetId}`; 从脚本编辑器运行时,我看到以下形式:

Jun 15, 2020, 8:39:01 PM    Debug   Received post for 1IzltuWDZ1_4Xm6pdBWePhcUfD8JEyXjHSWLXXkravTMX
从网页执行时:

No logs are available for this execution
For recent executions there may be some delay in log availability.
触发设置:

选择要运行的函数:doPost 在部署时运行:Head 从电子表格中选择事件源 选择事件类型:在表单提交时 失败通知设置:每天通知我
现在问题已经解决了。对于其他人:

异常很可能指向脚本中的错误 只有从脚本编辑器运行脚本时,才会输出日志记录 我可能没有设置其他设置来记录运行时,不过在中可以看到更多。 首先尝试在脚本编辑器中运行,因为它更容易调试 对脚本的任何更改都需要重新部署。选择“新建”作为中的版本 部署对话
在我的例子中,问题在于我的脚本中有一个未初始化的变量,它破坏了一切。

在Google Apps脚本的Web Apps中,当它请求https://script.google.com/macros/s//exec,将运行重定向,然后返回来自Google Apps脚本的值。在这种情况下,返回状态代码200,同时返回Google Apps脚本中的错误和未返回的错误。这似乎是当前的规范。关于您当前的情况,我没有看到Stackdriver日志或错误日志。电子表格中没有数据,在Google脚本中添加console.log不会输出任何内容。虽然我不确定您的脚本是否正确,但如果您的Google应用程序脚本没有出现错误,将Web应用程序重新部署为新版本并再次测试如何?这样,最新的脚本就会反映到Web应用程序中。如果脚本有一些错误,您能否提供当前脚本以复制问题?这样,就可以找到修改点了。所以问题就归结为脚本中的一个问题。对于运行时,关于重新部署的说明很有用。我现在还看到,只有来自“脚本编辑器”的执行才有与之关联的日志数据。还是谷歌脚本的新手。@AndreM-实际上不是,所有日志都应该传播到StackDriver日志服务。异常没有像您声称的那样被记录,这一事实令人不安。请打开“文件->项目属性”菜单项,检查是否选中“日志异常”复选框ticked@OlegValter检查过了。我只是看看