【发布时间】:2018-10-26 12:04:05
【问题描述】:
这个问题是关于从某个地方接收 POST 请求。我正在寻找一个可以从 POST 请求中以 JSON 格式获取和处理数据的 google sheet 脚本函数。你能举个例子吗?
POST 请求在这里:
https://script.google.com/macros/s/BOdirjv45Dn6FHrx_4GUguuS6NJxnSEeviMHm3HerJl4UsDBnDgfFPO/
{
"p1": "writeTitle",
"p2": [[URL]],
"p3": [[PIC_A]],
"p4": [[PIC_B]],
"p5": [[TITLE]]
}
application/json
doPost() 不起作用:
doPost(e) {
var json = JSON.parse(e.postData.contents);
Logger.log(json);
}
【问题讨论】:
-
Apps Script 具有保留函数名称
doGet()和doPost(),它们是对 Apps Script Web App 的已发布 Url 发出的 GET 和 POST 请求的事件侦听器。您可以将脚本发布为绑定到 Google Sheet 的 Apps Script Web App。 (或文档或表单)因此,要从某个外部源发出的 POST 请求中运行代码,您需要创建一个doPost(e)函数。参数e将接收来自 POST 请求的负载对象。请参阅 Apps 脚本文档中的“事件对象”。 -
@Sandy 好的,谢谢!我仍然不明白如何访问已发送的数据?我做了 doPost(e) { var json = JSON.parse(e.postData.contents);记录器.log(json); },它什么也没显示。
-
记录
e的值 -Logger.log(typeof e)Logger.log(JSON.stringify(e))此外,您必须在每次更改代码时将脚本发布为 Web 应用程序. -
@Sandy 好的,非常感谢!在发送 POST 请求之前,我将 JSON.stringify 添加到我的初始 json 中,它可以工作。但是当我尝试记录 Logger.log(typeof e) 时,我看到:“未找到日志。使用 Logger API 将日志添加到您的项目。”
标签: post google-apps-script google-sheets http-post