为每个通话记录获取twilio录音

为每个通话记录获取twilio录音,twilio,twilio-php,twilio-api,Twilio,Twilio Php,Twilio Api,看起来所有的指南都过时了,而twilio的网站也没有一个明确的答案 我正在尝试获取所有通话的列表,对于每个通话记录,检查一个录音记录,如果它有录音记录,那么获取它的uri 虽然我不认为这是正确的方式做什么,我试图做的脚本是非常非常缓慢,并没有如预期的工作,这里是我现在的位置: // Set our AccountSid and AuthToken $sid = 'MY_SID'; $token = 'MY_TOKEN'; // Your Account Sid and Auth Token f

看起来所有的指南都过时了,而twilio的网站也没有一个明确的答案

我正在尝试获取所有通话的列表,对于每个通话记录,检查一个录音记录,如果它有录音记录,那么获取它的uri

虽然我不认为这是正确的方式做什么,我试图做的脚本是非常非常缓慢,并没有如预期的工作,这里是我现在的位置:

// Set our AccountSid and AuthToken
$sid = 'MY_SID';
$token = 'MY_TOKEN';

// Your Account Sid and Auth Token from twilio.com/user/account
$client = new Client($sid, $token );

// Loop over the list of calls and echo a property for each one
foreach ($client->account->calls->read() as $call
) {
    echo $call->sid.",  &nbsp; ".getRecording($call->sid)."<br/>";


}

function getRecording($callsid){


    // Set our AccountSid and AuthToken
    $sid = 'MY_SID';
    $token = 'MY_TOKEN';
    $client = new Client($sid, $token);

    // Loop over the list of recordings and echo a property for each one
    foreach ($client->account->recordings->read( array( "CallSid" => $callsid )) as $recording ) {

        return "&nbsp; &nbsp; ->".$callsid." <a href='http://api.twilio.com".$recording->uri."'>Audio</a> ";

    }
}
//设置我们的AccountSid和AuthToken
$sid='MY_sid';
$token='MY_token';
//您的帐户Sid和来自twilio.com/user/Account的身份验证令牌
$client=新客户端($sid,$token);
//循环调用列表并回显每个调用的属性
foreach($client->account->calls->read()作为$call
) {
echo$call->sid.,.getRecording($call->sid)。“
”; } 函数getRecording($callsid){ //设置我们的帐户SID和AuthToken $sid='MY_sid'; $token='MY_token'; $client=新客户端($sid,$token); //循环记录列表,并为每个记录回显一个属性 foreach($client->account->recordings->read(数组(“CallSid”=>$CallSid))作为$recording){ 返回“->”$callsid。”; } }
输出结果是,所有录制URI对于每个URI都是相同的

CAb5323eed7ed4f82b3990830777c02684,       ->CAb5323eed7ed4f82b3990830777c02684 <a href='http://api.twilio.com/2010-04-01/Accounts/My_account_nr/Recordings/RE9f96dc253140ffdfa8cd37c139de978s.json'>Audio</a> 
CA57df3525265949c4dfcaa9073b02880a,       ->CA57df3525265949c4dfcaa9073b02880a <a href='http://api.twilio.com/2010-04-01/Accounts/My_account_nr/Recordings/RE9f96dc253140ffdfa8cd37c139de978s.json'>Audio</a> 
CA31f0ac07483d72a56d424b55672a61ab,       ->CA31f0ac07483d72a56d424b55672a61ab <a href='http://api.twilio.com/2010-04-01/Accounts/My_account_nr/Recordings/RE9f96dc253140ffdfa8cd37c139de978s.json'>Audio</a> 
CAac6e6f0d45cd15069300202ce6cbc27e,       ->CAac6e6f0d45cd15069300202ce6cbc27e <a href='http://api.twilio.com/2010-04-01/Accounts/My_account_nr/Recordings/RE9f96dc253140ffdfa8cd37c139de978s.json'>Audio</a> 
CAe51db5d605b94c7141d43611bc8dbbd1,       ->CAe51db5d605b94c7141d43611bc8dbbd1 <a href='http://api.twilio.com/2010-04-01/Accounts/My_account_nr/Recordings/RE9f96dc253140ffdfa8cd37c139de978s.json'>Audio</a> 
CAbe46fe9ab0202fc15184915b0af94d1a,       ->CAbe46fe9ab0202fc15184915b0af94d1a <a href='http://api.twilio.com/2010-04-01/Accounts/My_account_nr/Recordings/RE9f96dc253140ffdfa8cd37c139de978s.json'>Audio</a> 
CA15c3eaccc8b1cfca648105744c1c1c8c,       ->CA15c3eaccc8b1cfca648105744c1c1c8c <a href='http://api.twilio.com/2010-04-01/Accounts/My_account_nr/Recordings/RE9f96dc253140ffdfa8cd37c139de978s.json'>Audio</a> 
CAcb9a5d1f7e3f3b4f3b1eff08f4e51094,       ->CAcb9a5d1f7e3f3b4f3b1eff08f4e51094 <a href='http://api.twilio.com/2010-04-01/Accounts/My_account_nr/Recordings/RE9f96dc253140ffdfa8cd37c139de978s.json'>Audio</a> 
CAfc6a986c4e58e35778d4242303f37e32,       ->CAfc6a986c4e58e35778d4242303f37e32 <a href='http://api.twilio.com/2010-04-01/Accounts/My_account_nr/Recordings/RE9f96dc253140ffdfa8cd37c139de978s.json'>Audio</a> 
CA58aa5dc00c72567b91b43db52577080a,       ->CA58aa5dc00c72567b91b43db52577080a <a href='http://api.twilio.com/2010-04-01/Accounts/My_account_nr/Recordings/RE9f96dc253140ffdfa8cd37c139de978s.json'>Audio</a> 
CA65dbdee33266a706f17616ecf03e78eb,       ->CA65dbdee33266a706f17616ecf03e78eb <a href='http://api.twilio.com/2010-04-01/Accounts/My_account_nr/Recordings/RE9f96dc253140ffdfa8cd37c139de978s.json'>Audio</a> 
CAb5323eed7ed4f82b3990830777c02684,->CAb5323eed7ed4f82b3990830777c02684
CA57df3525265949c4dfcaa9073b02880a,->CA57df3525265949c4dfcaa9073b02880a
CA31f0ac07483d72a56d424b55672a61ab,->CA31f0ac07483d72a56d424b55672a61ab
CAac6e6f0d45cd15069300202ce6cbc27e,->CAac6e6f0d45cd15069300202ce6cbc27e
CAE51DB5D605B94C7141D4361BC8DBBD1,->CAE51DB5D605B94C7141D4361BC8DBBD1
CAbe46fe9ab0202fc15184915b0af94d1a,->CAbe46fe9ab0202fc15184915b0af94d1a
CA15C3EACC8B1CCFCA648105744C1C8C,->CA15C3EACC8B1CCFCA648105744C1C8C
CACB9A5D1F7E3F3B4F3B1EFF8F4E51094,->CACB9A5D1F7E3F3B4F3B1EFF8F4E51094
CAFC6A986C4E58E35778D424303F37E32,->CAFC6A986C4E58E35778D424303F37E32
CA58aa5dc00c72567b91b43db52577080a,->CA58aa5dc00c72567b91b43db52577080a
CA65dbdee33266a706f17616ecf03e78eb,->CA65dbdee33266a706f17616ecf03e78eb

我在寻找一个更好的解决方案,因为这不起作用,而且运行速度也非常慢。

这里是Twilio开发者福音传道者

你是对的,在所有调用上循环,然后通过RESTAPI在所有调用记录上循环,速度会非常慢。我建议您不要采用这种方法来显示录制的内容

相反,你可以做两件事

首先,编写一个与您已有的脚本类似的脚本,但不要编写HTML,而是将调用及其记录保存到数据库中。这样,您就可以查看自己的数据库,这比多次调用API要快得多

其次,您可以在调用中使用,而不是继续运行该脚本来更新新调用。这允许您设置webhook URL,以便在新呼叫的录制完成时,您的应用程序将收到一个带有的HTTP请求。然后您也可以将其保存到数据库中,您的应用程序将使用所有最新录制进行更新


如果有帮助,请告诉我。

这里是Twilio开发者福音传道者

你是对的,在所有调用上循环,然后通过RESTAPI在所有调用记录上循环,速度会非常慢。我建议您不要采用这种方法来显示录制的内容

相反,你可以做两件事

首先,编写一个与您已有的脚本类似的脚本,但不要编写HTML,而是将调用及其记录保存到数据库中。这样,您就可以查看自己的数据库,这比多次调用API要快得多

其次,您可以在调用中使用,而不是继续运行该脚本来更新新调用。这允许您设置webhook URL,以便在新呼叫的录制完成时,您的应用程序将收到一个带有的HTTP请求。然后您也可以将其保存到数据库中,您的应用程序将使用所有最新录制进行更新


如果有帮助,请告诉我。

这实际上是一种非常快速且非常好的方法。 Twilio员工提供的解决方案。谢谢

$client = new Client($sid, $token);

// Create an array of recordings
$recording_array = array();
// Loop over the list of recordings and echo a property for each one
foreach ($client->recordings->read() as $recording) {
    $recording_array[$recording->callSid][$count] = $recording->sid;
    $count++;
}


foreach ($client->account->calls->read() as $call) {
    // Check if there is a call sid exist
    if(array_key_exists($call->sid, $recording_array)){
      foreach($recording_array["$call->sid"] as $key=>$val){
          echo $call->sid.", Recording is ".$val."\r\n";
      }
    } else {
      echo $call->sid."\r\n"; 
    }
}

这实际上是一个非常快速和伟大的方式。 Twilio员工提供的解决方案。谢谢

$client = new Client($sid, $token);

// Create an array of recordings
$recording_array = array();
// Loop over the list of recordings and echo a property for each one
foreach ($client->recordings->read() as $recording) {
    $recording_array[$recording->callSid][$count] = $recording->sid;
    $count++;
}


foreach ($client->account->calls->read() as $call) {
    // Check if there is a call sid exist
    if(array_key_exists($call->sid, $recording_array)){
      foreach($recording_array["$call->sid"] as $key=>$val){
          echo $call->sid.", Recording is ".$val."\r\n";
      }
    } else {
      echo $call->sid."\r\n"; 
    }
}

如何制作一个示例应用程序,该应用程序将接收包含所有录制信息的HTTP请求?你所说的示例应用程序到底是什么意思?网站?如何配置?@AwaisFayyaz我不知道你在问什么?要接收HTTP请求,您需要构建一个web应用程序。我认为我无法在SO答案的注释中描述如何做到这一点。我如何制作一个示例应用程序,该应用程序将接收一个HTTP请求,其中包含录制的所有信息?你所说的示例应用程序到底是什么意思?网站?如何配置?@AwaisFayyaz我不知道你在问什么?要接收HTTP请求,您需要构建一个web应用程序。我不认为我可以在一个SO答案的评论中描述如何做到这一点。