gpt4 book ai didi

twilio - 如何使用状态回调 twilio 获取合成链接

转载 作者:行者123 更新时间:2023-12-04 15:10:10 26 4
gpt4 key购买 nike

这是我尝试过的方法,但没有用。

这家伙负责在 session 结束后创作一篇作文。

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 控制台中创建的。但状态回调人员似乎无法正常工作,我可以看到以下问题。

Bug from Twilio debugger

看来我在使用状态回调时犯了错误。请让我知道问题是什么以及如何解决。谢谢。

最佳答案

非常感谢@philnash帮忙解决这个问题。👍


我解决了上面的问题,现在可以拿到作文的下载链接了。

问题出在状态回调函数中,由于状态回调方法,我应该使用 req.body 而不是 req.query。 (在我的代码中是 POST。)

这是固定的代码。

app.post('/api/getMeeting', (req, res) => {
if (req.body.StatusCallbackEvent === 'composition-available') {
const client = require('twilio')(config.twilio.apiKey, config.twilio.apiSecret, {accountSid: config.twilio.accountSid});
const compositionSid = req.body.CompositionSid;
const uri = "https://video.twilio.com/v1/Compositions/" + compositionSid + "/Media?Ttl=3600";

client.request({
method: "GET",
uri: uri,
}).then((response) => {
const requestUrl = response.body.redirect_to; // Getting the redirect link that user can download composition
sendRecordingEmail(requestUrl, userEmail); // Send URL via email to the user
res.status(200).send("success");

}).catch((error) => {
res.status(500).send("Error fetching /Media resource " + error);
});
} else {
res.status(204).send('compositioin is not available');
}
});

关于twilio - 如何使用状态回调 twilio 获取合成链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65348645/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com