Telegram bot webhook 链接到谷歌脚本
function doPost(e){
var contents = JSON.parse(e.postData.contents);
GmailApp.sendEmail("######@gmail.com", "Telegram Bot Update", JSON.stringify(e.postData.contents,null,4));
var text = contents.message.text;
var id = contents.message.from.id;
var name = contents.message.from.first_name + " " + contents.message.from.last_name;
sendText(id, "Hi, " + name);
}
该代码应向我的电子邮件发送一条消息,其中包含有关机器人中消息的信息,然后回复它。
当机器人收到消息时,脚本只发送一封电子邮件,但没有响应。单独运行时,该函数会因此错误而崩溃。
TypeError:无法读取未定义对象的属性“postData”。
你能告诉我如何正确地将 e 传递给一个函数以便定义它吗?
用于调试类似
然后你至少会明白哪里出错了。
doPost(e)
说到底,“TypeError: Cannot read object property of undefined”是因为手动触发时没有传入。在这种情况下,很明显e === undefined
.要调试此类代码,您需要手动实现对象
e
并通过测试函数将其传递重要的。您的脚本必须以您的名义为所有人和匿名发布。每次编辑后,您必须发布一个新版本。