Sms Twilio:未发送短信
在通话结束时,我想向来电者和控制号码发送一条短信,其中包含通话录音的链接 我有两个垃圾桶。第一个负责拨号和录音,然后将电话转接到第二个电话亭。这很有效Sms Twilio:未发送短信,sms,twilio,Sms,Twilio,在通话结束时,我想向来电者和控制号码发送一条短信,其中包含通话录音的链接 我有两个垃圾桶。第一个负责拨号和录音,然后将电话转接到第二个电话亭。这很有效 <?xml version="1.0" encoding="UTF-8"?> <Response> <Dial record="record-from-ringing-dual" timeLimit="600" action="https://handler.twilio.com/twiml/XXXXXXXXXX
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Dial record="record-from-ringing-dual" timeLimit="600" action="https://handler.twilio.com/twiml/XXXXXXXXXXXXXXX">
<Number>{{Digits}}</Number>
</Dial>
</Response>
{{位数}}
这是第二个箱子:
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Sms from="+XXXXXXXXX" to="{{From}}">Here's the recording of your call: {{RecordingUrl}}</Sms>
<Sms from="+XXXXXXXXX" to="+YYYYYYYYYY">Call recorded from {{From}} to {{To}}.</Sms>
</Response>
这是您通话的录音:{{RecordingUrl}
从{{from}}到{{{to}的呼叫记录。
从日志中,我看到TwiML bin被成功调用。状态代码是200。已正确替换{From}}号
但是,没有发送短信。短信日志中不显示短信。如果我自己打电话,就不会收到短信。尽管如此,在调用日志或调试器中没有出现错误消息。Twilio开发者福音传道者 正如我们在您的另一个问题中所讨论的,
使用了不推荐使用的SMS/Messages资源。因此,它没有很好的日志记录
我建议改为使用。你不能用TwiML垃圾箱来做,但你可以用
在中,确保选中“启用帐户SID和身份验证令牌”复选框。并输入以下代码(替换实数的占位符):
为函数指定一个路径,然后复制整个URL,并将其用作第一个TwiML Bin中
中的操作属性
如果有任何帮助,请告诉我。嘿,再来一次!好的,这样效果更好,根本问题是第一个号码没有正确的地理权限。现在,至少另一条消息已正确发送。但是,调试器、呼叫日志或SMS日志中没有显示第一条消息因地理权限而失败的事实。它只出现在函数日志中,当我从所看到的内容刷新页面时,这些日志会被刷新。这正常吗?从函数进行HTTP调用就像从您自己的服务器进行HTTP调用,因此错误不会出现在调试器、调用日志或SMS日志中。我只是想知道函数日志是否存储在任何地方以供查看。我听说随着函数通过其公共测试阶段,历史日志会出现在路线图中。因此,您将能够看到这些日志中的错误。好的,谢谢您的研究。实际上,在调用日志中,您可以看到返回的请求,状态代码为500。我认为应该在通话记录的顶部更清楚地表明,在这条路上出了问题。那500人不是在电话中显示为警报吗?
exports.handler = function(context, event, callback) {
const client = context.getTwilioClient();
const message1 = client.messages.create({
from: YOUR_TWILIO_NUMBER,
to: event.From,
body: `Here's the recording of your call: ${event.RecordingUrl}`
});
const message2 = client.messages.create({
from: YOUR_TWILIO_NUMBER,
to: THAT_OTHER_NUMBER,
body: `Call recorded from ${event.From} to ${event.To}.`
})
Promise.all([message1, message2]).then(() => {
let twiml = new Twilio.twiml.VoiceResponse();
callback(null, twiml);
}, err => {
callback(err);
})
};