【问题标题】:Dynamic Response in Twilio with Node (Wait for response)带有节点的 Twilio 中的动态响应(等待响应)
【发布时间】:2018-12-04 18:33:51
【问题描述】:

我目前正在尝试构建一个 Twilio 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}`)
    }

}

这甚至可能吗? 感谢所有帮助和建议

【问题讨论】:

    标签: node.js express post twilio


    【解决方案1】:

    这里是 Twilio 开发者宣传员。

    当您像这样响应传入消息时,您实际上是在返回对传入 HTTP 请求的响应。响应是 XML (TwiML) 和类似 twiml.message 的方法构建该响应。您需要返回结果并结束函数才能做出回复。因此,您不能等待函数内的下一个响应。

    不过,您可以做的是,将您目前进行的对话存储在一个 cookie 中,然后将其与下一条消息中的下一个 webhook 一起发回。我可以在这个答案中描述所有这些,但相反,我推荐building an SMS conversation with Twilio and Node 上的本教程,它将引导您完成如何实现这一目标的完整示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-06
      • 2017-10-18
      • 2022-10-12
      • 2016-01-16
      • 2014-12-20
      • 2019-05-20
      • 2018-11-02
      • 2019-05-23
      相关资源
      最近更新 更多