使用Node.js解决Twilio / TwiML statusCallback问题

时间:2016-01-08 07:10:40

标签: node.js heroku twilio

当用户给我的号码发短信时,我想用TwiML回复一条消息。我还想知道我的回复消息是发送还是失败。我正在使用Node.js的Twilio库创建我的TwiML响应。

这是我的代码:

const response = new twilio.TwimlResponse();
response.message(Response, {
  statusCallback: '/sms/status/'
});

以下是路线的代码。请注意,路由器安装在“/ sms /”路由器上:

router.post('/status/', acceptRequestsOnlyFromTwilio, (req, res) => {
    const Event = require('./../models/schemas/event');
    const event = new Event({
        description:
            `MessageSid = ${req.body.MessageSid}
            MessageStatus = ${req.body.MessageStatus}`
    });
    event.save();
    console.log(
        `MessageSid = ${req.body.MessageSid}
        MessageStatus = ${req.body.MessageStatus}`
    );
    res.sendStatus(200);
});

当我使用Heroku CLI检查我的日志时,我检查MongoDB时没有记录也没有看到记录。

任何人都有任何关于我如何调试此问题的建议或提示,或者我是否正确地实施此操作?

谢谢你的时间!

1 个答案:

答案 0 :(得分:0)

Twilio开发者传道者在这里。

首先,您是否设置了正在使用的Twilio电话号码的Messaging request URL?它是否指向Message TwiML响应的正确路由?

fill in the Messaging section "Request URL" field with your URL.

此外,您的第一个代码块也应位于服务器的router.post端点内。您是否正确地将TwiML响应作为服务器响应返回?

作为提示,最好在本地开发此应用程序并使用ngrok等工具测试您的webhook端点。 I love using ngrok to test webhooks