Apps Script REST再一篇 - doPost request

通常操作REST服務時,除了GET方式操作之外
POST跟其他method的操作也少不了
這邊介紹POST的操作function:doPost()
doPost function同樣會在參數部分帶入request object用來包裝傳入的參數
下面是一個範例,簡單的組一個response回覆前端的呼叫:

function doPost(request){
  var data = {"name": request.parameters.form};
  return ContentService.createTextOutput(JSON.stringify(data))
    .setMimeType(ContentService.MimeType.JSON);
}

上面程式同樣使用request.parameters.[parameter name]來帶回傳入參數的值
後續可以有更複雜的操作,例如利用這個值做資料庫的查詢或是Google文件的查詢之類的...
程式完成後的deploy & publish部分則與之前方式相同。

Client操作的部份,為了應付比較複雜的POST操作,這邊使用Node.js的request模組來操作POST的呼叫,其中因為Apps Script執行url的redirect特性,必須加入followAllRedirects這個參數,指定request模組往下做redirect page的查詢動作,而form欄位所帶入的JOSN物件中,key值(form)所對應的value(123)則會實際反應在Apps Script中的request.parameters.[key]中

var request = require('request');
request({
    method: 'POST',
    followAllRedirects: true,
    form: {
      form: '123'
    }
  }, function(err, r, body){
    if(err) console.log(err);
    console.log(body);
    process.exit(0);
});

執行結果:

{"name":["123"]}

上面的相關文件,可參考: