- Вы хотите получить значение из тела запроса как объект.
- Вы уже развернули веб-приложения.
Если мое понимание вашей ситуации верноекак насчет этой модификации?
Опубликовать и получить объект:
В качестве примера я использовал следующую команду curl для POST в Web Apps.
curl -L \
-H 'Content-Type:application/json' \
-d '{"p1": "writeTitle","p2": "[[URL]]","p3": "[[PIC_A]]","p4": "[[PIC_B]]","p5": "[[TITLE]]"}' \
"https://script.google.com/macros/s/#####/exec"
Когда вышекоманда выполняется, e
из doPost(e)
выглядит следующим образом.
{
"parameter": {},
"contextPath": "",
"contentLength": 90,
"queryString": "",
"parameters": {},
"postData": {
"type": "application/json",
"length": 90,
"contents": "{\"p1\": \"writeTitle\",\"p2\": \"[[URL]]\",\"p3\": \"[[PIC_A]]\",\"p4\": \"[[PIC_B]]\",\"p5\": \"[[TITLE]]\"}",
"name": "postData"
}
}
Размещенная полезная нагрузка может быть получена с помощью e.postData
.Из приведенного выше ответа выясняется, что желаемое значение можно получить с помощью e.postData.contents
.Между прочим, когда параметр запроса и полезная нагрузка задаются следующим образом,
curl -L \
-H 'Content-Type:application/json' \
-d '{"p1": "writeTitle","p2": "[[URL]]","p3": "[[PIC_A]]","p4": "[[PIC_B]]","p5": "[[TITLE]]"}' \
"https://script.google.com/macros/s/#####/exec?key=value"
value
можно получить с помощью e.parameter
или e.parameters
.И полезную нагрузку можно получить с помощью e.postData.contents
.
Модифицированный скрипт:
В этом модифицированном скрипте результат можно увидеть на Stackdriver, а также вернуть результат.
function doPost(e) {
var json = JSON.parse(e.postData.contents);
console.log(json);
return ContentService.createTextOutput(JSON.stringify(json));
}
Примечание:
- Когда вы изменили свой скрипт веб-приложений, пожалуйста, повторно разверните его как новую версию.Таким образом, последний скрипт отражается на веб-приложениях.Это важный момент.
Справка:
Если это не то, что вы хотите, извините.