我目前正在尝试构建一个 Twilio SMS 应用,该应用可以使用条件语句基于前一条消息来响应传入的SMS消息。
我的应用收到请求并发布回复。
我希望应用程序等待响应并从下一个if语句继续,但是它只是从顶部运行,并再次检查第一个if语句。
目的是我想像聊天和真实对话一样对待它,并保存上一条消息中的数据和上下文,而不仅仅是之前的消息。
示例:
app.post('/sms', (req,res) => {
const twiml = new messageResponse();
let textData = req.body.Body // Incoming SMS Body
if(textData === "Hello") {
twiml.message('Hello! Thanks for reaching out');
};
//Step 2: wait for next incoming message
if(textData === "Order Status") {
twiml.message(`Your order status is ${order.status}`)
}
我希望应用程序等待响应并从“第2步”开始接听,而不是再次运行整个帖子?
我尝试过的事情 -我尝试使用返回值的If语句创建函数并运行这些函数。示例:
app.post('/sms', (req,res) => {
const twiml = new messageResponse();
let textData = req.body.Body // Incoming SMS Body
let userGreet = false
let replyBack = () => {
if (textData.includes('hello')) {
return userGreet = true;
}
}
userGreet = replyBackBack()
if(userGreet) {
twiml.message('Hello! Thanks for reaching out');
};
//Step 2: wait for next incoming message
if(textData === "Order Status") {
twiml.message(`Your order status is ${order.status}`)
}
}
这甚至可能吗? 感谢所有帮助和建议
答案 0 :(得分:0)
这里是Twilio开发人员的传播者。
当您响应这样的传入消息时,实际上是在返回对传入HTTP请求的响应。响应是XML(TwiML),类似twiml.message
的方法将建立响应。您需要返回结果并结束函数以进行回复。因此,您不能等待函数中的下一个响应。
但是,您可以做的是将到目前为止的对话存储在cookie中,然后将其与下一条消息中的下一个webhook一起发送回去。我可以在此答案中描述所有这些内容,但是,我建议在building an SMS conversation with Twilio and Node上使用本教程,该教程将向您介绍如何实现此目的的完整示例。