我试图创建一个脚本来通过Ejunkie的HTTP POST捕获数据。当有人在ejunkie上进行购买时,他们可以通过HTTP POST将所有订单数据传输到公共通知URL(文档)。我希望捕获这些数据,以便将其放入Google表格中。
所以我设置了一个带有doPost(e)功能的工作表:
// attempt 1
function doPost(e) {
if(typeof e !== 'undefined')
Logger.log(e.parameters);
}
// attempt 2
function doPost(e) {
var data = JSON.stringify(e);
Logger.log(data);
}
我已发布为可以访问任何人的Web应用程序,然后将该脚本URL作为ejunkie中的公共通知URL输入。
我尝试过几次测试交易,但我在日志中什么都没得到。
有什么想法吗?提前感谢您的帮助。
此处有关于此主题的old faithful example。
答案 0 :(得分:3)
这是我用来将数据发布到我的工作表的代码:
function doPost(e) {
Logger.log("I was called")
if(typeof e !== 'undefined')
Logger.log(e.parameter);
var ss= SpreadsheetApp.openById("ID here")
var sheet = ss.getSheetByName("Sheet2")
sheet.getRange(1, 1).setValue(JSON.stringify(e))
return ContentService.createTextOutput(JSON.stringify(e))
}
使用curl发出帖子请求并获得发送数据的回声!
答案 1 :(得分:1)
可以尝试这样的事吗?你也可以看看@ this thread:doPost(e) does not return parameters but doGet(e) does?
function doPost(e) {
if(typeof e !== 'undefined')
return ContentService.createTextOutput(JSON.stringify(e.parameter));
}

答案 2 :(得分:1)
而不是使用Logger.log()作为通知自己的方式,如果您的通话完成,请尝试sending an email给自己。这是片段:
function doPost(e) {
if(typeof e !== 'undefined')
MailApp.sendEmail({
to: "youremail@gmail.com",
subject: "Call Sucessful",
htmlBody: "I am your <br>" +
"DATA"
});
}
如果被要求,请允许必要的许可。如果我没弄错,Logger.log仅适用于脚本编辑器,不适用于您的生产网络应用程序。