问题
I am testing Twilio's API in PHP. Currently I have a working module which allows me to place calls and record them. Now I am writing a module to report on those calls.
The code below is supposed to fetch a filtered list of calls and present my browser with a little info about that call, as well as link to the audio recording. This script fetches call logs. For each call it then calls a function to fetch the recording belonging to the current call. Problem is, it fetches the same audio recording every time.
$version = '2010-04-01';
// Set our AccountSid and AuthToken
$sid = 'abc123';
$token = 'fbc123';
// Your Account Sid and Auth Token from twilio.com/user/account
$client = new Services_Twilio($sid, $token,$version);
$dt = date("Y-m-d");
// Loop over the list of calls and echo a property for each one
foreach ($client->account->calls->getIterator(0, 50, array(
"Status" => "completed",
"StartTime>" => "2015-08-04",
"StartTime<" => "$dt"
)) as $call
) {
echo $call->sid.", ".$call->duration.", $".abs($call->price)." ".getRecording($call->sid)."<br/>";
}
function getRecording($callsid){
// Twilio REST API version
$version = '2010-04-01';
// Set our AccountSid and AuthToken
$sid = 'abc123';
$token = 'fbc123';
$client = new Services_Twilio($sid, $token);
// Loop over the list of recordings and echo a property for each one
foreach ($client->account->recordings->getIterator(0, 50, array(
"callSid" => '$callsid'
)) as $recording
) {
return " ->".$callsid." <strong><a href='http://api.twilio.com".$recording->uri."'>Audio</a></strong>";
}
}
The output is this (please notice that every audio file has the same URL):
CAab40cacf1690a86e604ba0f527153887, 1, $0.015 ->CAab40cacf1690a86e604ba0f527153887 <strong><a href='http://api.twilio.com/2010-04-01/Accounts/acctnumber/Recordings/REe9a199dec7376ef94d6af256749e7d81'>Audio</a></strong>
CAaf5629839a6d2095067a04359dc13809, 14, $0.015 ->CAaf5629839a6d2095067a04359dc13809 <strong><a href='http://api.twilio.com/2010-04-01/Accounts/acctnumber/Recordings/REe9a199dec7376ef94d6af256749e7d81'>Audio</a></strong>
CAa8610e49f6e49a71c8bf3e02d3e974f1, 11, $0.015 ->CAa8610e49f6e49a71c8bf3e02d3e974f1 <strong><a href='http://api.twilio.com/2010-04-01/Accounts/acctnumber/Recordings/REe9a199dec7376ef94d6af256749e7d81'>Audio</a></strong>
CA478704a99883f919a9932b52c6971cf7, 21, $0.015 ->CA478704a99883f919a9932b52c6971cf7 <strong><a href='http://api.twilio.com/2010-04-01/Accounts/acctnumber/Recordings/REe9a199dec7376ef94d6af256749e7d81'>Audio</a></strong>
CA00b2f9db896e3b8cfc82c93df5c8e11e, 9, $0.015 ->CA00b2f9db896e3b8cfc82c93df5c8e11e <strong><a href='http://api.twilio.com/2010-04-01/Accounts/acctnumber/Recordings/REe9a199dec7376ef94d6af256749e7d81'>Audio</a></strong>
CAcbd21d8dd3de1c06ce1f393c987bc6c7, 19, $0.015 ->CAcbd21d8dd3de1c06ce1f393c987bc6c7 <strong><a href='http://api.twilio.com/2010-04-01/Accounts/acctnumber/Recordings/REe9a199dec7376ef94d6af256749e7d81'>Audio</a></strong>
CAffb1d60f5f48b870af65329d7d4ca48f, 4, $0.015 ->CAffb1d60f5f48b870af65329d7d4ca48f <strong><a href='http://api.twilio.com/2010-04-01/Accounts/acctnumber/Recordings/REe9a199dec7376ef94d6af256749e7d81'>Audio</a></strong>
CA44fd1b5b9ef347f730d068abafffbd73, 15, $0.015 ->CA44fd1b5b9ef347f730d068abafffbd73 <strong><a href='http://api.twilio.com/2010-04-01/Accounts/acctnumber/Recordings/REe9a199dec7376ef94d6af256749e7d81'>Audio</a></strong>
回答1:
Twilio developer evangelist here.
The parameters for queries are case sensitive so you need to capitalize the c
in callSid
. Also wrapping a string in single quotes doesn't substitute it.
foreach ($client->account->recordings->getIterator(0, 50, array(
"callSid" => '$callsid'
to
foreach ($client->account->recordings->getIterator(0, 50, array(
"CallSid" => $callsid
Please let me know if I can help further!
edit: To clarify what was happening, a request was being made to get all the recordings in the account since the query param was off and each time it was taking the first one of the collection and returning that. Thus causing them to all be the same.
来源:https://stackoverflow.com/questions/32055523/twilio-api-getting-the-recording-of-a-call