使用PostMan测试Google脚本

Mat*_*t W 3 google-apps-script postman

我已经创建了一个Google脚本并将其发布为网络应用程序,非常类似于此帖子中的内容

但是,我想doGet使用Postman 调用极其简单的方法。该Web应用程序以我的匿名访问和执行权限发布。

我期望能够将URL粘贴到Postman中,设置GET动词并命中Send-并在浏览器中看到相同的结果。我不。

我究竟做错了什么?

[UPDATE]响应评论大师

我在Google云端硬盘中创建了一个Google Apps Script被叫的电话devices。我添加了以下功能:

function doDelete(e) {
  return HtmlService.createHtmlOutput('{"test":"yes"}');
}
Run Code Online (Sandbox Code Playgroud)

很简单,我知道,但是应该使用以下方式响应DELETE请求:

{
  "test": "yes"
}
Run Code Online (Sandbox Code Playgroud)

然后,单击Save,然后单击Deploy>,Publish as web app...并使用以下选项:

  • 项目版本:新
  • 以我的身份执行该应用
  • 有权访问的人:任何人,甚至是匿名的

我点击Update并获得了这样的网址:

https://script.google.com/macros/s/ABcdefgHInmLDGiHmpGmXkXIxMjsh0s61sKZ9ov6OOSpkb--1quTtff/exec

如果该函数已命名,doGet并且将URL粘贴到浏览器中,则会看到上面提到的JSON。

如果我保留该函数的名称doDelete并向DELETEPostman发出请求,则会得到以下信息:

无法得到任何响应连接到https://script.google.com/macros/s/ABcdefgHInmLDGiHmpGmXkXIxMjsh0s61sKZ9ov6OOSpkb--1quTtfM/exec时出错 。发生这种情况的原因:服务器无法发送响应:确保后端正常运行自签名SSL证书被阻止:通过在“设置”>“常规代理”中配置不正确的“ SSL证书验证”来解决此问题。在“设置”>“代理请求超时”中正确配置了代理:在“设置”>“常规”中更改请求超时

如果将函数更改为doGet,重新发布并GET在Postman 的请求下调用它,则得到的结果相同。

[编辑]澄清

如果我使用进行邮递员呼叫GETdoGet设置了功能来调用IFTTT Webhook,则该Webhook会触发。我还可以使用Postman中的doPostPOST请求使其触发。

不过,如果我使用doDeleteDELETE在邮差请求,IFTTT网络挂接不会被调用。

无论Postman中使用的动词如何,我都不会得到回应-只是上面引用的消息。

[EDIT]回应@ sourabh-choraria 问题

我的代码目前是这样的:

function doGet(e) {
  return HtmlService.createHtmlOutput('{"valid":"no"}');
}
Run Code Online (Sandbox Code Playgroud)

通过上述过程发布,与邮递员联系时会收到以下信息:

Could not get any response
Run Code Online (Sandbox Code Playgroud)

我提出GET没有任何标题的请求。

Sou*_*ria 7

目前,根据Google Apps Script的网络应用程序对网络应用程序的要求,它们仅支持以下HTTP方法-

  • GET通过doGet()
  • 通过POSTdoPost()

虽然在参考文档中没有明确声明不支持PUT,DELETE,UPDATE等,但是无法通过Apps Script中的Web Apps执行这些HTTP方法。