问题描述
我想使用Google Apps脚本和Hello Sign API创建新的API应用
我已将重定向URL指定为https://script.google.com/macros/s/AKfycbyKw3oLmpqINGsDml281iUbxBboKn950dqVFXNibMfLurxYcRPf/exec,并且屏幕截图如下所示
function doPost(e) {
return ContentService.createtextoutput("Hello API Event Received.");
}
文档说:https://app.hellosign.com/api/eventsAndCallbacksWalkthrough
我收到如下所示的错误消息
此处的插图图片
解决方法
查看我们的后端日志,我们发现您的回调URL不允许授予我们的POST调用以获取“收到Hello API事件”响应。这可能是由于您的[回调处理程序设置] [1]。
您介意看看这个类似的问题吗,他们以何种方式解决了POST / {Allow
头字段,并通过发送电子邮件至apisupport@hellosign.com告诉我们如何处理?
App Script sends 405 response when trying to send a POST request
[1]:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status/405#:~:text=The%20HyperText%20Transfer%20Protocol%20(HTTP,受支持的% 20by%20the%20target%20resource。
, 405
(http-status-code-405)是“不允许的方法”,其中使用了错误的方法。在这种情况下,ContentService
使用特定的重定向模式(post-redirect-get wiki),其中对POST
的{{1}}请求被重定向(302
)到script.google.com
的一个网址,应该向script.googleusercontent.com
请求。
302
specification并不打算将方法从GET
更改为POST
,但是这种模式在网络中非常普遍。但是,hellosign-api似乎向GET
处的一次重定向URL发出了另一个POST
请求。从应用程序脚本更改此行为没有什么可做的。可以更改为script.googleusercontent.com
以避免重定向,但是Hellosign特别要求您提供特定的文本内容作为响应:HtmlService
。 Hello API Event Received
无法做到这一点。
您可以make a feature request/bug fix request到Google将重定向状态更改为303,其中已明确指定将方法更改为HtmlService
。或向Hellosign请求以GET
的请求跟随302
重定向,因为这是最常见的方式,事情是在网络上完成的。