Twilio 如何使用状态回调获取合成的链接
这是我试过的,但不起作用 这个人负责在会议结束后创作一篇作文Twilio 如何使用状态回调获取合成的链接,twilio,Twilio,这是我试过的,但不起作用 这个人负责在会议结束后创作一篇作文 app.post('/api/endMeeting', (req, res) => { const roomSid = req.body.roomSid; userEmail = req.body.userEmail; const client = require('twilio')(config.twilio.apiKey, config.twilio.apiSecret, {accountSid: config.
app.post('/api/endMeeting', (req, res) => {
const roomSid = req.body.roomSid;
userEmail = req.body.userEmail;
const client = require('twilio')(config.twilio.apiKey, config.twilio.apiSecret, {accountSid: config.twilio.accountSid});
client.video.rooms(roomSid).update({ status: 'completed' });
client.video.compositions.create({
roomSid: roomSid,
audioSources: '*',
videoLayout: {
grid : {
video_sources: ['*']
}
},
statusCallback: `${process.env.REACT_APP_BASE_URL}/api/getMeeting`,
statusCallbackMethod: 'POST',
format: 'mp4'
}).then(() => {
// sendRecordingEmail(composition.sid, userEmail);
res.status(200).send({
message: 'success'
});
}).catch(err => {
res.status(500).send({
message: err.message
});
});
});
这家伙会把作文的下载链接发送给参与者
app.post('/api/getMeeting', (req, res) => {
if (req.query.StatusCallbackEvent === 'composition-available') {
const client = require('twilio')(config.twilio.apiKey, config.twilio.apiSecret, {accountSid: config.twilio.accountSid});
const compositionSid = req.query.CompositionSid;
const uri = "https://video.twilio.com/v1/Compositions/" + compositionSid + "/Media?Ttl=3600";
client.request({
method: "GET",
uri: uri,
}).then((response) => {
const requestUrl = request(response.data.redirect_to);
sendRecordingEmail(requestUrl, userEmail);
res.status(200).send("success");
}).catch((error) => {
res.status(500).send("Error fetching /Media resource " + error);
});
}
});
我可以确认合成完全是在Twilio控制台中创建的。
但是,状态回调的家伙似乎没有工作,我可以看到下面的问题
看来我在使用状态回调时犯了错误。
请让我知道问题是什么以及我如何解决这个问题。
谢谢。非常感谢
@philnash
在解决此问题时提供的帮助。twilio是否自动调用此/api/getMeeting url,或者我们是否需要执行任何其他操作以获取状态回调?请检查上面的其他代码附件<代码>/api/endMeeting正如您所看到的,我刚刚在创建合成api时传递了这个StatusCallback。因此Twilio将自动调用/api/getMeeting
。