作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个功能可以让你录音,如果你不满意就删除你的录音。您可以按 * 删除最后的录音。
我的录音代码是:
exports.handler = function(context, event, callback) {
const twiml = new Twilio.twiml.VoiceResponse();
twiml.say('Welcome! Please record your announcement after the beep!');
twiml.say('After your recording, hang up if you are satisfied or press star to delete the newest recording.');
twiml.record({
finishOnKey: '*',
recordingStatusCallback: '/delete',
action: '/delete'
});
callback(null, twiml);
};
删除最后一条录音的代码(/delete):
exports.handler = function(context, event, callback) {
const twiml = new Twilio.twiml.VoiceResponse();
const id = event.RecordingSid;
console.log(id);
console.log(typeof id);
const accountSid = 'AC1775ae53d952710bb1b4e47ea19c009c';
const authToken = {my_token};
const client = require('twilio')(accountSid, authToken);
client.recordings(id)
.remove(function(err, data) {
if (err) {
twiml.say("there is an error");
console.log(err.status);
throw err.message;
} else {
console.log("deleted successfully.");
twiml.say("deleted successfully");
}
})
.then(recording => console.log(recording.sid))
.done();
twiml.say('Your announcement is deleted');
callback(null, twiml);
};
现在,我得到了正确的 ID,没有错误,但是当我检查录音日志时,录音仍然存在。这是为什么?我需要给它一些时间让它删除吗?
来自 console.log(recording.sid)
的日志也没有显示,我不确定为什么它没有执行应该删除录音的整个代码块。
提前致谢!
最佳答案
此处为 Twilio 开发人员布道师。
当您设置 recordingStatusCallback
至 /delete
以及 action
你的<Gather>
, 然后 Twilio 将尝试两次调用 /delete
;录制完成时一次,用户响应 <Gather>
时一次。 .
recordingStatusCallback
旨在与调用本身异步工作,所以我将专注于 action
相反。
录制完成后(用户按 *),Twilio 将向 <Record>
发出请求action
属性。在该请求中,作为请求正文的一部分,您将收到 RecordingURL
。 (即使录制状态尚未完成)。你应该通过这个 RecordingURL
通过 <Gather>
的结果(或将其存储在 session 中)并使用它来执行 DELETE
如果您需要删除录音,请请求或提取录音 SID 以用于 Twilio Node 模块。
这有什么帮助吗?
关于node.js - 如何在 Node.JS 中删除调用者在 Twilio 中所做的最后(最近)录音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50573116/
我是一名优秀的程序员,十分优秀!