我正在尝试设置与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凭据替换它时,我成功地收到了一条消息,所以这个部分工作正常。另外,当我尝试手动地ping postb.in url (用curl)时,它也可以正常工作。只有statusCallback不能工作。
谢谢。
发布于 2018-10-29 00:42:20
两位开发人员在这里传道。
在我看来,除了Postbin URL之外,一切都做得很好。
我注意到你把你的网址显示为http://postb.in/b/XXXXXXXX。但是,/b/版本的URL是您的Postbin的仪表板。对仪表板的请求不会出现在仪表板上。
相反,您应该使用类似于:http://postb.in/XXXXXXXX的URL。试一试,让我知道它是否有效。
https://stackoverflow.com/questions/53006663
复制相似问题