问题描述
我正在使用此 API 来获取 Twilio 通话记录。我想要相应通话的录音作为 mp3 文件。我们正在从 recordings
下的 subresource_uris
访问记录 URL,但那是 .json 文件。根据此thread,我们将 .json 替换为 .mp3 并在开头添加了 https://api.twilio.com。如果我们尝试播放录音,它不会播放。
目前,录音 URL 可用于所有通话记录,但只有少数通话启用了通话记录。那么我们如何区分通话是否被录音呢?
解决方法
这里是 Twilio 开发者布道者。
据我所知,您正在尝试使用 C# 访问录音文件。您可以通过请求 call's recording resource:
来获取通话录音列表string accountSid = Environment.GetEnvironmentVariable("TWILIO_ACCOUNT_SID");
string authToken = Environment.GetEnvironmentVariable("TWILIO_AUTH_TOKEN");
TwilioClient.Init(accountSid,authToken);
var recordings = RecordingResource.Read(
callSid: "CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",limit: 20
);
// print out each recording's URI
foreach(var record in recordings)
{
Console.WriteLine(record.Uri);
}
如果您使用具有录音的呼叫 Sid 运行上述程序,那么您将看到打印出的录音的 URI。它们看起来像:
/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Recordings/REXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.json
这是您应该采用的 URI,前缀为 https://api.twilio.com
并将扩展名从 .json
更改为 .mp3
以获取录音文件。所以,对于上面的例子,请求:
https://api.twilio.com/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Recordings/REXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.mp3
因此,如果您使用 API 获取通话记录以获取通话 SID,然后调用每个通话的录音资源,您就可以获得录音列表并构建 URI 以下载每个录音音频文件。