我正在尝试将包含通话录音的音频文件附加到电子邮件中。
我的代码适用于公共网址中的音频文件,但不适用于 Twilio 通话录音。 我确信问题出在身份验证上,所以我尝试将其添加到我的代码中,但现在它不再工作了。
我的代码现在是什么样子:
// configure authentication
var auth = "Basic " + Buffer.from(context.accountSid + ":" + context.authToken).toString("base64");
headers = {'Authorization': 'Basic ' + auth};
// request with authentication
url = 'https://api.twilio.com/2010-04-01/Accounts/AC..../Recordings/' + event.recordingSid + '.mp3';
responseResource = request.get(url, headers=headers);
// get audio file and attach to mail
request.get({ uri: responseResource, encoding: null }, (error, response, body) => {
const msg = {
// some configuration for message
attachments: [
{
content: body.toString('base64'),
filename: 'Call.mp3',
type: "audio/mpeg"
}
]
};
// send mail
});
};
我收到的当前错误代码是“已编辑 - 可能包含安全敏感信息”,而且还有“消息”:“self.uri.auth.split 不是函数”。
我会首先更改您的处理错误并使用
request
lib 来处理它,然后调用
const request = require('request');
const auth = "Basic " + Buffer.from(context.accountSid + ":" + context.authToken).toString("base64");
const headers = {'Authorization': auth};
const url = 'https://api.twilio.com/2010-04-01/Accounts/AC..../Recordings/' + event.recordingSid + '.mp3';
request.get({
url: url,
headers: headers,
encoding: null // Important to get binary data
}, (error, response, body) => {
if (error) {
console.error(error);
return;
}
if (response.statusCode !== 200) {
console.error("Failed to fetch Twilio recording:", response.statusCode, response.statusMessage);
return;
}
const msg = {
attachments: [
{
content: body,
filename: 'Call.mp3',
encoding: 'base64',
type: "audio/mpeg"
}
]
};
// send mail using your sendMail function or library
// sendMail(msg);
});