我正在尝试使用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
不起作用。
谢谢。
答案 0 :(得分:2)
这里是Twilio开发人员的传播者。
在我看来,除了Postbin网址之外,您还可以进行所有设置。
我注意到您将您的URL显示为http://postb.in/b/XXXXXXXX
。但是URL的/b/
版本是您的Postbin的仪表板。对仪表板的请求不会显示在仪表板上。
您应该使用类似于http://postb.in/XXXXXXXX
的URL。试试看,让我知道它是否有效。