如何使用doPost(请求)在应用程序脚本中访问帖子请求的正文

DJC*_*ose 5 google-apps-script

我需要在Google App Script中访问帖子请求的原始主体.我看到有类似的东西

function doPost(request) {
  request.contentLength
}
Run Code Online (Sandbox Code Playgroud)

这实际上返回了请求正文的原始内容的正确长度.所以我认为必须要有一些东西来获得完整的身体,例如作为一个字符串.

我不希望访问可能使用post传输的表单字段参数.

Ram*_*aum 8

2013年5月9日发行说明中,使用request.postData.getDataAsString():

function doPost(request) {
    var jsonString = request.postData.getDataAsString();
    var jsonData = JSON.parse(jsonString);
    sheet.appendRow([ 'Data1:' , jsonData.Data1 ]); // Just an example
}
Run Code Online (Sandbox Code Playgroud)


Suj*_*dke 5

我知道这个问题很旧,但是很多事情已经改变,Google现在已经提供了这个问题。您可以使用以下命令轻松访问POST请求的正文doPost(e)

e.postData.contents
Run Code Online (Sandbox Code Playgroud)

如果要解析传入的JSON,请使用以下命令:

JSON.parse(e.postData.contents)
Run Code Online (Sandbox Code Playgroud)


Sri*_*rik 0

找出您有权访问的所有内容的最简单方法是打印出请求对象。

function doPost(request) {
  Logger.log(request); 
}
Run Code Online (Sandbox Code Playgroud)

然后对脚本的 URL 执行 POST 以查看日志内容