Twilio statusCallback不会触发

时间:2018-10-26 10:25:32

标签: twilio

我正在尝试使用twilio设置邮件传递状态检查。由于某些原因,twilio statusCallback不会触发。您能帮我发现一个错误吗?

这是我初始化并发送消息的文件:

const Twilio = require('twilio');
const {
  TWILIO_ACCOUNT_SID,
  TWILIO_AUTH_TOKEN,
  TWILIO_PHONE_NUMBER
} = require('config');

const client = new Twilio(TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN);

module.exports = {
  send: (body, phoneNumber) => client.messages.create({
    body,
    to: phoneNumber,
    from: TWILIO_PHONE_NUMBER,
    statusCallback: 'http://postb.in/b/XXXXXXXX'
  })
    .then((message) => {
      console.log(message.sid);

      return message.sid;
    })
};

这是一个测试,我在初始化后调用消息发送:

const { expect } = require('chai');
const smsUtility = require('utils/sms');

describe('Sms utility', () => {
  it('should send a message and return message sid', (done) => {
    const body = 'Body';
    const number = '+XXXXXXXXXXX';

    smsUtility.send(body, number)
      .then((messageSid) => {
        expect(typeof messageSid).to.equal('string');

        return done();
      })
      .catch((err) => {
        console.log(err);

        return done();
      });
  });
});

我使用测试凭据,但是当我用真实的twilio凭据替换它时,我成功接收到一条消息,因此这部分工作正常。另外,当我尝试手动(使用curl)ping postb.in url时,它也可以正常工作。只有statusCallback不起作用。

谢谢。

1 个答案:

答案 0 :(得分:2)

这里是Twilio开发人员的传播者。

在我看来,除了Postbin网址之外,您还可以进行所有设置。

我注意到您将您的URL显示为http://postb.in/b/XXXXXXXX。但是URL的/b/版本是您的Postbin的仪表板。对仪表板的请求不会显示在仪表板上。

您应该使用类似于http://postb.in/XXXXXXXX的URL。试试看,让我知道它是否有效。